[gnome-settings-daemon/f19] Fix getting of notifications from remote CUPS servers

mkasik mkasik at fedoraproject.org
Wed Aug 7 13:13:46 UTC 2013


commit 0c772a35eb28975aea08b39fdb77f8e3ab581d60
Author: Marek Kasik <mkasik at redhat.com>
Date:   Wed Aug 7 14:59:57 2013 +0200

    Fix getting of notifications from remote CUPS servers
    
    Resolves: #886845

 ...ications-Move-translator-comments-to-appr.patch |   40 +
 0002-print-notifications-Coding-style-fixes.patch  |  136 +
 ...tifications-Use-better-debugging-messages.patch |   37 +
 ...ifications-Honor-CUPS-default-port-number.patch |   65 +
 ...ications-Connect-to-message-bus-asynchron.patch |   74 +
 ...ications-Cancel-subscription-to-DBus-sign.patch |   69 +
 ...ications-Stop-renewing-of-CUPS-subscripti.patch |   81 +
 ...ications-Don-t-use-DBus-recipient-URI-for.patch |   54 +
 ...ications-Don-t-run-connection-test-for-lo.patch |  128 +
 ...ications-Use-IPP-method-for-getting-IPP-n.patch |  369 +++
 ...ications-Regularly-check-for-notification.patch |   56 +
 ...ications-Show-final-job-states-for-remote.patch | 2782 ++++++++++++++++++++
 gnome-settings-daemon.spec                         |   34 +-
 13 files changed, 3924 insertions(+), 1 deletions(-)
---
diff --git a/0001-print-notifications-Move-translator-comments-to-appr.patch b/0001-print-notifications-Move-translator-comments-to-appr.patch
new file mode 100644
index 0000000..56f9556
--- /dev/null
+++ b/0001-print-notifications-Move-translator-comments-to-appr.patch
@@ -0,0 +1,40 @@
+From af7fdef550e5979f39feaca8f891fcf2d6eb5432 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Tue, 30 Jul 2013 10:48:48 +0200
+Subject: [PATCH 01/12] print-notifications: Move translator comments to
+ appropriate positions
+
+Move translator comments 1 line above the actual strings so that
+translators see them.
+---
+ plugins/print-notifications/gsd-print-notifications-manager.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 442e1f7..5bb9408 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -442,18 +442,18 @@ on_cups_notification (GDBusConnection *connection,
+                 cupsFreeDests (manager->priv->num_dests, manager->priv->dests);
+                 manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+ 
+-                /* Translators: New printer has been added */
+                 if (is_local_dest (printer_name,
+                                    manager->priv->dests,
+                                    manager->priv->num_dests)) {
++                        /* Translators: New printer has been added */
+                         primary_text = g_strdup (_("Printer added"));
+                         secondary_text = g_strdup (printer_name);
+                 }
+         } else if (g_strcmp0 (signal_name, "PrinterDeleted") == 0) {
+-                /* Translators: A printer has been removed */
+                 if (is_local_dest (printer_name,
+                                    manager->priv->dests,
+                                    manager->priv->num_dests)) {
++                        /* Translators: A printer has been removed */
+                         primary_text = g_strdup (_("Printer removed"));
+                         secondary_text = g_strdup (printer_name);
+                 }
+-- 
+1.8.3.1
+
diff --git a/0002-print-notifications-Coding-style-fixes.patch b/0002-print-notifications-Coding-style-fixes.patch
new file mode 100644
index 0000000..6810171
--- /dev/null
+++ b/0002-print-notifications-Coding-style-fixes.patch
@@ -0,0 +1,136 @@
+From fda5e90c688bb8c4b7c3e26936cc6b16256acb9c Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Tue, 30 Jul 2013 11:04:45 +0200
+Subject: [PATCH 02/12] print-notifications: Coding style fixes
+
+---
+ .../gsd-print-notifications-manager.c              | 36 ++++++++--------------
+ 1 file changed, 12 insertions(+), 24 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 5bb9408..ba38a49 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -408,8 +408,7 @@ on_cups_notification (GDBusConnection *connection,
+                 if ((http = httpConnectEncrypt (cupsServer (), ippPort (),
+                                                 cupsEncryption ())) == NULL) {
+                         g_debug ("Connection to CUPS server \'%s\' failed.", cupsServer ());
+-                }
+-                else {
++                } else {
+                         job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", job_id);
+ 
+                         request = ippNewRequest (IPP_GET_JOB_ATTRIBUTES);
+@@ -432,8 +431,7 @@ on_cups_notification (GDBusConnection *connection,
+                         }
+                         g_free (job_uri);
+                 }
+-        }
+-        else {
++        } else {
+                 g_warning ("Invalid number of parameters for signal '%s'", signal_name);
+                 return;
+         }
+@@ -632,8 +630,7 @@ on_cups_notification (GDBusConnection *connection,
+                                                 added_reasons = g_slist_append (added_reasons,
+                                                                                 new_state_reasons[i]);
+                                 }
+-                        }
+-                        else {
++                        } else {
+                                 for (i = 0; new_state_reasons && i < g_strv_length (new_state_reasons); i++) {
+                                         added_reasons = g_slist_append (added_reasons,
+                                                                         new_state_reasons[i]);
+@@ -661,8 +658,7 @@ on_cups_notification (GDBusConnection *connection,
+ 
+                                                         data->timeout_id = g_timeout_add_seconds (CONNECTING_TIMEOUT, show_notification, data);
+                                                         manager->priv->timeouts = g_list_append (manager->priv->timeouts, data);
+-                                                }
+-                                                else {
++                                                } else {
+                                                         ReasonData *reason_data;
+                                                         gchar *second_row = g_strdup_printf (statuses_second[j], printer_name);
+ 
+@@ -836,8 +832,7 @@ scp_handler (GsdPrintNotificationsManager *manager,
+                                    error->message);
+                         g_error_free (error);
+                 }
+-        }
+-        else if (manager->priv->scp_handler_spawned) {
++        } else if (manager->priv->scp_handler_spawned) {
+                 kill (manager->priv->scp_handler_pid, SIGHUP);
+                 g_spawn_close_pid (manager->priv->scp_handler_pid);
+                 manager->priv->scp_handler_spawned = FALSE;
+@@ -885,8 +880,7 @@ renew_subscription (gpointer data)
+         if ((http = httpConnectEncrypt (cupsServer (), ippPort (),
+                                         cupsEncryption ())) == NULL) {
+                 g_debug ("Connection to CUPS server \'%s\' failed.", cupsServer ());
+-        }
+-        else {
++        } else {
+                 if (manager->priv->subscription_id >= 0) {
+                         request = ippNewRequest (IPP_RENEW_SUBSCRIPTION);
+                         ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_URI,
+@@ -898,8 +892,7 @@ renew_subscription (gpointer data)
+                         ippAddInteger (request, IPP_TAG_SUBSCRIPTION, IPP_TAG_INTEGER,
+                                       "notify-lease-duration", SUBSCRIPTION_DURATION);
+                         ippDelete (cupsDoRequest (http, request, "/"));
+-                }
+-                else {
++                } else {
+                         request = ippNewRequest (IPP_CREATE_PRINTER_SUBSCRIPTION);
+                         ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_URI,
+                                       "printer-uri", NULL,
+@@ -951,8 +944,7 @@ renew_subscription_with_connection_test_cb (GObject      *source_object,
+                 g_object_unref (connection);
+ 
+                 renew_subscription (user_data);
+-        }
+-        else {
++        } else {
+                 g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
+         }
+ }
+@@ -978,8 +970,7 @@ renew_subscription_with_connection_test (gpointer user_data)
+                                                        user_data);
+ 
+                 g_object_unref (client);
+-        }
+-        else {
++        } else {
+                 renew_subscription (user_data);
+         }
+ 
+@@ -1012,8 +1003,7 @@ cups_connection_test_cb (GObject      *source_object,
+ 
+                 renew_subscription (user_data);
+                 g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription_with_connection_test, manager);
+-        }
+-        else {
++        } else {
+                 g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
+                 if (manager->priv->cups_connection_timeout_id == 0)
+                         manager->priv->cups_connection_timeout_id =
+@@ -1044,8 +1034,7 @@ cups_connection_test (gpointer user_data)
+                                                                manager);
+ 
+                         g_object_unref (client);
+-                }
+-                else {
++                } else {
+                         manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+                         gnome_settings_profile_msg ("got dests");
+ 
+@@ -1060,8 +1049,7 @@ cups_connection_test (gpointer user_data)
+                 manager->priv->cups_connection_timeout_id = 0;
+ 
+                 return FALSE;
+-        }
+-        else {
++        } else {
+                 return TRUE;
+         }
+ }
+-- 
+1.8.3.1
+
diff --git a/0003-print-notifications-Use-better-debugging-messages.patch b/0003-print-notifications-Use-better-debugging-messages.patch
new file mode 100644
index 0000000..58fa264
--- /dev/null
+++ b/0003-print-notifications-Use-better-debugging-messages.patch
@@ -0,0 +1,37 @@
+From fc2838076c1de3bff38020187b6d1a9b18a7237c Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Tue, 30 Jul 2013 11:07:11 +0200
+Subject: [PATCH 03/12] print-notifications: Use better debugging messages
+
+Using g_debug() is more appropriate than gnome_settings_profile_msg()
+for message about getting dests from CUPS server.
+Be more specific in those debugging messages.
+---
+ plugins/print-notifications/gsd-print-notifications-manager.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index ba38a49..954a919 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -999,7 +999,7 @@ cups_connection_test_cb (GObject      *source_object,
+                 g_object_unref (connection);
+ 
+                 manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+-                gnome_settings_profile_msg ("got dests");
++                g_debug ("Got dests from remote CUPS server.");
+ 
+                 renew_subscription (user_data);
+                 g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription_with_connection_test, manager);
+@@ -1036,7 +1036,7 @@ cups_connection_test (gpointer user_data)
+                         g_object_unref (client);
+                 } else {
+                         manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+-                        gnome_settings_profile_msg ("got dests");
++                        g_debug ("Got dests from local CUPS server.");
+ 
+                         renew_subscription (user_data);
+                         g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription_with_connection_test, manager);
+-- 
+1.8.3.1
+
diff --git a/0004-print-notifications-Honor-CUPS-default-port-number.patch b/0004-print-notifications-Honor-CUPS-default-port-number.patch
new file mode 100644
index 0000000..4521520
--- /dev/null
+++ b/0004-print-notifications-Honor-CUPS-default-port-number.patch
@@ -0,0 +1,65 @@
+From d264695c827a7702006d09c2dff853b6be454155 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 10:53:49 +0200
+Subject: [PATCH 04/12] print-notifications: Honor CUPS' default port number
+
+Don't default to "631" for default port when testing connection
+to remote CUPS server.
+---
+ .../gsd-print-notifications-manager.c                    | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 954a919..3615c82 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -954,17 +954,20 @@ renew_subscription_with_connection_test (gpointer user_data)
+ {
+         GSocketClient *client;
+         gchar         *address;
++        int            port;
+ 
+-        address = g_strdup_printf ("%s:%d", cupsServer (), ippPort ());
++        port = ippPort ();
++
++        address = g_strdup_printf ("%s:%d", cupsServer (), port);
+ 
+         if (address && address[0] != '/') {
+                 client = g_socket_client_new ();
+ 
+-                g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), ippPort ());
++                g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), port);
+ 
+                 g_socket_client_connect_to_host_async (client,
+                                                        address,
+-                                                       631,
++                                                       port,
+                                                        NULL,
+                                                        renew_subscription_with_connection_test_cb,
+                                                        user_data);
+@@ -1017,18 +1020,19 @@ cups_connection_test (gpointer user_data)
+         GsdPrintNotificationsManager *manager = (GsdPrintNotificationsManager *) user_data;
+         GSocketClient                *client;
+         gchar                        *address;
++        int                           port = ippPort ();
+ 
+         if (!manager->priv->dests) {
+-                address = g_strdup_printf ("%s:%d", cupsServer (), ippPort ());
++                address = g_strdup_printf ("%s:%d", cupsServer (), port);
+ 
+                 if (address && address[0] != '/') {
+                         client = g_socket_client_new ();
+ 
+-                        g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), ippPort ());
++                        g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), port);
+ 
+                         g_socket_client_connect_to_host_async (client,
+                                                                address,
+-                                                               631,
++                                                               port,
+                                                                NULL,
+                                                                cups_connection_test_cb,
+                                                                manager);
+-- 
+1.8.3.1
+
diff --git a/0005-print-notifications-Connect-to-message-bus-asynchron.patch b/0005-print-notifications-Connect-to-message-bus-asynchron.patch
new file mode 100644
index 0000000..ec49841
--- /dev/null
+++ b/0005-print-notifications-Connect-to-message-bus-asynchron.patch
@@ -0,0 +1,74 @@
+From 727f5998785428a5d9215ba37b5a3f3f57c4f4a0 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 14:53:41 +0200
+Subject: [PATCH 05/12] print-notifications: Connect to message bus
+ asynchronously
+
+---
+ .../gsd-print-notifications-manager.c              | 43 ++++++++++++++++------
+ 1 file changed, 31 insertions(+), 12 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 3615c82..379d67f 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -1058,6 +1058,33 @@ cups_connection_test (gpointer user_data)
+         }
+ }
+ 
++static void
++gsd_print_notifications_manager_got_dbus_connection (GObject      *source_object,
++                                                     GAsyncResult *res,
++                                                     gpointer      user_data)
++{
++        GsdPrintNotificationsManager *manager = (GsdPrintNotificationsManager *) user_data;
++        GError                       *error = NULL;
++
++        manager->priv->cups_bus_connection = g_bus_get_finish (res, &error);
++
++        if (manager->priv->cups_bus_connection != NULL) {
++                g_dbus_connection_signal_subscribe (manager->priv->cups_bus_connection,
++                                                    NULL,
++                                                    CUPS_DBUS_INTERFACE,
++                                                    NULL,
++                                                    CUPS_DBUS_PATH,
++                                                    NULL,
++                                                    0,
++                                                    on_cups_notification,
++                                                    manager,
++                                                    NULL);
++        } else {
++                g_warning ("Connection to message bus failed: %s", error->message);
++                g_error_free (error);
++        }
++}
++
+ static gboolean
+ gsd_print_notifications_manager_start_idle (gpointer data)
+ {
+@@ -1069,18 +1096,10 @@ gsd_print_notifications_manager_start_idle (gpointer data)
+ 
+         cups_connection_test (manager);
+ 
+-        manager->priv->cups_bus_connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+-
+-        g_dbus_connection_signal_subscribe (manager->priv->cups_bus_connection,
+-                                            NULL,
+-                                            CUPS_DBUS_INTERFACE,
+-                                            NULL,
+-                                            CUPS_DBUS_PATH,
+-                                            NULL,
+-                                            0,
+-                                            on_cups_notification,
+-                                            manager,
+-                                            NULL);
++        g_bus_get (G_BUS_TYPE_SYSTEM,
++                   NULL,
++                   gsd_print_notifications_manager_got_dbus_connection,
++                   data);
+ 
+         scp_handler (manager, TRUE);
+ 
+-- 
+1.8.3.1
+
diff --git a/0006-print-notifications-Cancel-subscription-to-DBus-sign.patch b/0006-print-notifications-Cancel-subscription-to-DBus-sign.patch
new file mode 100644
index 0000000..16c596d
--- /dev/null
+++ b/0006-print-notifications-Cancel-subscription-to-DBus-sign.patch
@@ -0,0 +1,69 @@
+From a59cda6c1df53ae361ff4ed6cdce3bec10f36fd1 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 14:58:40 +0200
+Subject: [PATCH 06/12] print-notifications: Cancel subscription to DBus
+ signals when finished
+
+Store id of the subscription to CUPS' DBus signals and remove it
+when stopping manager.
+---
+ .../gsd-print-notifications-manager.c              | 29 ++++++++++++++--------
+ 1 file changed, 19 insertions(+), 10 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 379d67f..f7a8463 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -75,6 +75,7 @@ struct GsdPrintNotificationsManagerPrivate
+         GHashTable                   *printing_printers;
+         GList                        *active_notifications;
+         guint                         cups_connection_timeout_id;
++        guint                         cups_dbus_subscription_id;
+ };
+ 
+ enum {
+@@ -1069,16 +1070,17 @@ gsd_print_notifications_manager_got_dbus_connection (GObject      *source_object
+         manager->priv->cups_bus_connection = g_bus_get_finish (res, &error);
+ 
+         if (manager->priv->cups_bus_connection != NULL) {
+-                g_dbus_connection_signal_subscribe (manager->priv->cups_bus_connection,
+-                                                    NULL,
+-                                                    CUPS_DBUS_INTERFACE,
+-                                                    NULL,
+-                                                    CUPS_DBUS_PATH,
+-                                                    NULL,
+-                                                    0,
+-                                                    on_cups_notification,
+-                                                    manager,
+-                                                    NULL);
++                manager->priv->cups_dbus_subscription_id =
++                        g_dbus_connection_signal_subscribe (manager->priv->cups_bus_connection,
++                                                            NULL,
++                                                            CUPS_DBUS_INTERFACE,
++                                                            NULL,
++                                                            CUPS_DBUS_PATH,
++                                                            NULL,
++                                                            0,
++                                                            on_cups_notification,
++                                                            manager,
++                                                            NULL);
+         } else {
+                 g_warning ("Connection to message bus failed: %s", error->message);
+                 g_error_free (error);
+@@ -1146,6 +1148,13 @@ gsd_print_notifications_manager_stop (GsdPrintNotificationsManager *manager)
+         manager->priv->num_dests = 0;
+         manager->priv->dests = NULL;
+ 
++        if (manager->priv->cups_dbus_subscription_id > 0 &&
++            manager->priv->cups_bus_connection != NULL) {
++                g_dbus_connection_signal_unsubscribe (manager->priv->cups_bus_connection,
++                                                      manager->priv->cups_dbus_subscription_id);
++                manager->priv->cups_dbus_subscription_id = 0;
++        }
++
+         if (manager->priv->subscription_id >= 0)
+                 cancel_subscription (manager->priv->subscription_id);
+ 
+-- 
+1.8.3.1
+
diff --git a/0007-print-notifications-Stop-renewing-of-CUPS-subscripti.patch b/0007-print-notifications-Stop-renewing-of-CUPS-subscripti.patch
new file mode 100644
index 0000000..bcf37a2
--- /dev/null
+++ b/0007-print-notifications-Stop-renewing-of-CUPS-subscripti.patch
@@ -0,0 +1,81 @@
+From e673cb3fb1b5c74115cc3b4f019b086feb2c8d6f Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 15:37:42 +0200
+Subject: [PATCH 07/12] print-notifications: Stop renewing of CUPS
+ subscriptions once we are finished
+
+Store id of the event source which renews subscriptions and remove it
+when stopping manager.
+---
+ .../gsd-print-notifications-manager.c              | 27 ++++++++++++++++++----
+ 1 file changed, 23 insertions(+), 4 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index f7a8463..223853c 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -76,6 +76,7 @@ struct GsdPrintNotificationsManagerPrivate
+         GList                        *active_notifications;
+         guint                         cups_connection_timeout_id;
+         guint                         cups_dbus_subscription_id;
++        guint                         renew_source_id;
+ };
+ 
+ enum {
+@@ -984,6 +985,24 @@ renew_subscription_with_connection_test (gpointer user_data)
+ }
+ 
+ static void
++renew_subscription_timeout_enable (GsdPrintNotificationsManager *manager,
++                                   gboolean                      enable)
++{
++        if (manager->priv->renew_source_id > 0)
++                g_source_remove (manager->priv->renew_source_id);
++
++        if (enable) {
++                renew_subscription (manager);
++                manager->priv->renew_source_id =
++                        g_timeout_add_seconds (RENEW_INTERVAL,
++                                               renew_subscription_with_connection_test,
++                                               manager);
++        } else {
++                manager->priv->renew_source_id = 0;
++        }
++}
++
++static void
+ cups_connection_test_cb (GObject      *source_object,
+                          GAsyncResult *res,
+                          gpointer      user_data)
+@@ -1005,8 +1024,7 @@ cups_connection_test_cb (GObject      *source_object,
+                 manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+                 g_debug ("Got dests from remote CUPS server.");
+ 
+-                renew_subscription (user_data);
+-                g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription_with_connection_test, manager);
++                renew_subscription_timeout_enable (manager, TRUE);
+         } else {
+                 g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
+                 if (manager->priv->cups_connection_timeout_id == 0)
+@@ -1043,8 +1061,7 @@ cups_connection_test (gpointer user_data)
+                         manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+                         g_debug ("Got dests from local CUPS server.");
+ 
+-                        renew_subscription (user_data);
+-                        g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription_with_connection_test, manager);
++                        renew_subscription_timeout_enable (manager, TRUE);
+                 }
+ 
+                 g_free (address);
+@@ -1155,6 +1172,8 @@ gsd_print_notifications_manager_stop (GsdPrintNotificationsManager *manager)
+                 manager->priv->cups_dbus_subscription_id = 0;
+         }
+ 
++        renew_subscription_timeout_enable (manager, FALSE);
++
+         if (manager->priv->subscription_id >= 0)
+                 cancel_subscription (manager->priv->subscription_id);
+ 
+-- 
+1.8.3.1
+
diff --git a/0008-print-notifications-Don-t-use-DBus-recipient-URI-for.patch b/0008-print-notifications-Don-t-use-DBus-recipient-URI-for.patch
new file mode 100644
index 0000000..a395f32
--- /dev/null
+++ b/0008-print-notifications-Don-t-use-DBus-recipient-URI-for.patch
@@ -0,0 +1,54 @@
+From 2c7af2055e36b816c24b39831477d55570b50e11 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Tue, 23 Jul 2013 15:11:39 +0200
+Subject: [PATCH 08/12] print-notifications: Don't use DBus recipient URI for
+ remote servers
+
+Using DBus for notify-recipient-uri is useless for remote servers.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=678623
+---
+ .../gsd-print-notifications-manager.c                | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 223853c..86bec39 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -146,6 +146,20 @@ is_local_dest (const char  *name,
+         return !is_remote;
+ }
+ 
++static gboolean
++server_is_local (const gchar *server_name)
++{
++        if (server_name != NULL &&
++            (g_ascii_strncasecmp (server_name, "localhost", 9) == 0 ||
++             g_ascii_strncasecmp (server_name, "127.0.0.1", 9) == 0 ||
++             g_ascii_strncasecmp (server_name, "::1", 3) == 0 ||
++             server_name[0] == '/')) {
++                return TRUE;
++        } else {
++                return FALSE;
++        }
++}
++
+ static int
+ strcmp0(const void *a, const void *b)
+ {
+@@ -905,8 +919,10 @@ renew_subscription (gpointer data)
+                                        "notify-events", num_events, NULL, events);
+                         ippAddString (request, IPP_TAG_SUBSCRIPTION, IPP_TAG_KEYWORD,
+                                       "notify-pull-method", NULL, "ippget");
+-                        ippAddString (request, IPP_TAG_SUBSCRIPTION, IPP_TAG_URI,
+-                                      "notify-recipient-uri", NULL, "dbus://");
++                        if (server_is_local (cupsServer ())) {
++                                ippAddString (request, IPP_TAG_SUBSCRIPTION, IPP_TAG_URI,
++                                              "notify-recipient-uri", NULL, "dbus://");
++                        }
+                         ippAddInteger (request, IPP_TAG_SUBSCRIPTION, IPP_TAG_INTEGER,
+                                        "notify-lease-duration", SUBSCRIPTION_DURATION);
+                         response = cupsDoRequest (http, request, "/");
+-- 
+1.8.3.1
+
diff --git a/0009-print-notifications-Don-t-run-connection-test-for-lo.patch b/0009-print-notifications-Don-t-run-connection-test-for-lo.patch
new file mode 100644
index 0000000..9afe41c
--- /dev/null
+++ b/0009-print-notifications-Don-t-run-connection-test-for-lo.patch
@@ -0,0 +1,128 @@
+From dbee9390dcc5f38b2811fa6a0eea0a1bfb9d6089 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 17:04:41 +0200
+Subject: [PATCH 09/12] print-notifications: Don't run connection test for
+ local server
+
+https://bugzilla.gnome.org/show_bug.cgi?id=678623
+---
+ .../gsd-print-notifications-manager.c              | 65 ++++++++++++----------
+ 1 file changed, 36 insertions(+), 29 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 86bec39..8a18950 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -1002,17 +1002,24 @@ renew_subscription_with_connection_test (gpointer user_data)
+ 
+ static void
+ renew_subscription_timeout_enable (GsdPrintNotificationsManager *manager,
+-                                   gboolean                      enable)
++                                   gboolean                      enable,
++                                   gboolean                      with_connection_test)
+ {
+         if (manager->priv->renew_source_id > 0)
+                 g_source_remove (manager->priv->renew_source_id);
+ 
+         if (enable) {
+                 renew_subscription (manager);
+-                manager->priv->renew_source_id =
+-                        g_timeout_add_seconds (RENEW_INTERVAL,
+-                                               renew_subscription_with_connection_test,
+-                                               manager);
++                if (with_connection_test)
++                        manager->priv->renew_source_id =
++                                g_timeout_add_seconds (RENEW_INTERVAL,
++                                                       renew_subscription_with_connection_test,
++                                                       manager);
++                else
++                        manager->priv->renew_source_id =
++                                g_timeout_add_seconds (RENEW_INTERVAL,
++                                                       renew_subscription,
++                                                       manager);
+         } else {
+                 manager->priv->renew_source_id = 0;
+         }
+@@ -1040,7 +1047,7 @@ cups_connection_test_cb (GObject      *source_object,
+                 manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+                 g_debug ("Got dests from remote CUPS server.");
+ 
+-                renew_subscription_timeout_enable (manager, TRUE);
++                renew_subscription_timeout_enable (manager, TRUE, TRUE);
+         } else {
+                 g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
+                 if (manager->priv->cups_connection_timeout_id == 0)
+@@ -1060,26 +1067,18 @@ cups_connection_test (gpointer user_data)
+         if (!manager->priv->dests) {
+                 address = g_strdup_printf ("%s:%d", cupsServer (), port);
+ 
+-                if (address && address[0] != '/') {
+-                        client = g_socket_client_new ();
+-
+-                        g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), port);
+-
+-                        g_socket_client_connect_to_host_async (client,
+-                                                               address,
+-                                                               port,
+-                                                               NULL,
+-                                                               cups_connection_test_cb,
+-                                                               manager);
++                client = g_socket_client_new ();
+ 
+-                        g_object_unref (client);
+-                } else {
+-                        manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+-                        g_debug ("Got dests from local CUPS server.");
++                g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), port);
+ 
+-                        renew_subscription_timeout_enable (manager, TRUE);
+-                }
++                g_socket_client_connect_to_host_async (client,
++                                                       address,
++                                                       port,
++                                                       NULL,
++                                                       cups_connection_test_cb,
++                                                       manager);
+ 
++                g_object_unref (client);
+                 g_free (address);
+         }
+ 
+@@ -1129,12 +1128,20 @@ gsd_print_notifications_manager_start_idle (gpointer data)
+ 
+         manager->priv->printing_printers = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ 
+-        cups_connection_test (manager);
+ 
+-        g_bus_get (G_BUS_TYPE_SYSTEM,
+-                   NULL,
+-                   gsd_print_notifications_manager_got_dbus_connection,
+-                   data);
++        if (server_is_local (cupsServer ())) {
++                manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
++                g_debug ("Got dests from local CUPS server.");
++
++                renew_subscription_timeout_enable (manager, TRUE, FALSE);
++
++                g_bus_get (G_BUS_TYPE_SYSTEM,
++                           NULL,
++                           gsd_print_notifications_manager_got_dbus_connection,
++                           data);
++        } else {
++                cups_connection_test (manager);
++        }
+ 
+         scp_handler (manager, TRUE);
+ 
+@@ -1188,7 +1195,7 @@ gsd_print_notifications_manager_stop (GsdPrintNotificationsManager *manager)
+                 manager->priv->cups_dbus_subscription_id = 0;
+         }
+ 
+-        renew_subscription_timeout_enable (manager, FALSE);
++        renew_subscription_timeout_enable (manager, FALSE, FALSE);
+ 
+         if (manager->priv->subscription_id >= 0)
+                 cancel_subscription (manager->priv->subscription_id);
+-- 
+1.8.3.1
+
diff --git a/0010-print-notifications-Use-IPP-method-for-getting-IPP-n.patch b/0010-print-notifications-Use-IPP-method-for-getting-IPP-n.patch
new file mode 100644
index 0000000..6553ca7
--- /dev/null
+++ b/0010-print-notifications-Use-IPP-method-for-getting-IPP-n.patch
@@ -0,0 +1,369 @@
+From 723238efdb198a2d1d1100a00ec452703bb00a09 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 17:08:19 +0200
+Subject: [PATCH 10/12] print-notifications: Use IPP method for getting IPP
+ notifications
+
+Use method IPP_GET_NOTIFICATIONS for getting of IPP notifications
+instead of relying on DBus interface of CUPS. This change allows
+us to unify getting of notifications for remote and local CUPS
+servers later.
+Use DBus notification for signaling the need for getting of new
+notifications.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=678623
+---
+ .../gsd-print-notifications-manager.c              | 252 ++++++++++++++++-----
+ 1 file changed, 191 insertions(+), 61 deletions(-)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 8a18950..5e229c1 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -77,6 +77,7 @@ struct GsdPrintNotificationsManagerPrivate
+         guint                         cups_connection_timeout_id;
+         guint                         cups_dbus_subscription_id;
+         guint                         renew_source_id;
++        gint                          last_notify_sequence_number;
+ };
+ 
+ enum {
+@@ -87,6 +88,7 @@ static void     gsd_print_notifications_manager_class_init  (GsdPrintNotificatio
+ static void     gsd_print_notifications_manager_init        (GsdPrintNotificationsManager      *print_notifications_manager);
+ static void     gsd_print_notifications_manager_finalize    (GObject                           *object);
+ static gboolean cups_connection_test                        (gpointer                           user_data);
++static gboolean process_new_notifications                   (gpointer                           user_data);
+ 
+ G_DEFINE_TYPE (GsdPrintNotificationsManager, gsd_print_notifications_manager, G_TYPE_OBJECT)
+ 
+@@ -301,25 +303,32 @@ on_cups_notification (GDBusConnection *connection,
+                       GVariant        *parameters,
+                       gpointer         user_data)
+ {
+-        GsdPrintNotificationsManager *manager = (GsdPrintNotificationsManager *) user_data;
+-        gboolean                     printer_is_accepting_jobs;
+-        gboolean                     my_job = FALSE;
+-        gboolean                     known_reason;
+-        http_t                      *http;
+-        gchar                       *printer_name = NULL;
+-        gchar                       *primary_text = NULL;
+-        gchar                       *secondary_text = NULL;
+-        gchar                       *text = NULL;
+-        gchar                       *printer_uri = NULL;
+-        gchar                       *printer_state_reasons = NULL;
+-        gchar                       *job_state_reasons = NULL;
+-        gchar                       *job_name = NULL;
+-        gchar                       *job_uri = NULL;
+-        guint                        job_id;
+-        ipp_t                       *request, *response;
+-        gint                         printer_state;
+-        gint                         job_state;
+-        gint                         job_impressions_completed;
++        process_new_notifications (user_data);
++}
++
++static void
++process_cups_notification (GsdPrintNotificationsManager *manager,
++                           const char                   *notify_subscribed_event,
++                           const char                   *notify_text,
++                           const char                   *notify_printer_uri,
++                           const char                   *printer_name,
++                           gint                          printer_state,
++                           const char                   *printer_state_reasons,
++                           gboolean                      printer_is_accepting_jobs,
++                           guint                         notify_job_id,
++                           gint                          job_state,
++                           const char                   *job_state_reasons,
++                           const char                   *job_name,
++                           gint                          job_impressions_completed)
++{
++        ipp_attribute_t *attr;
++        gboolean         my_job = FALSE;
++        gboolean         known_reason;
++        http_t          *http;
++        gchar           *primary_text = NULL;
++        gchar           *secondary_text = NULL;
++        gchar           *job_uri = NULL;
++        ipp_t           *request, *response;
+         static const char * const reasons[] = {
+                 "toner-low",
+                 "toner-empty",
+@@ -387,45 +396,20 @@ on_cups_notification (GDBusConnection *connection,
+                 /* Translators: The printer has detected an error (same as in system-config-printer) */
+                 N_("There is a problem on printer '%s'.") };
+ 
+-        if (g_strcmp0 (signal_name, "PrinterAdded") != 0 &&
+-            g_strcmp0 (signal_name, "PrinterDeleted") != 0 &&
+-            g_strcmp0 (signal_name, "PrinterStateChanged") != 0 &&
+-            g_strcmp0 (signal_name, "JobCompleted") != 0 &&
+-            g_strcmp0 (signal_name, "JobState") != 0 &&
+-            g_strcmp0 (signal_name, "JobCreated") != 0)
++        if (g_strcmp0 (notify_subscribed_event, "printer-added") != 0 &&
++            g_strcmp0 (notify_subscribed_event, "printer-deleted") != 0 &&
++            g_strcmp0 (notify_subscribed_event, "printer-state-changed") != 0 &&
++            g_strcmp0 (notify_subscribed_event, "job-completed") != 0 &&
++            g_strcmp0 (notify_subscribed_event, "job-state-changed") != 0 &&
++            g_strcmp0 (notify_subscribed_event, "job-created") != 0)
+                 return;
+ 
+-        if (g_variant_n_children (parameters) == 1) {
+-                g_variant_get (parameters, "(&s)", &text);
+-        } else if (g_variant_n_children (parameters) == 6) {
+-                g_variant_get (parameters, "(&s&s&su&sb)",
+-                               &text,
+-                               &printer_uri,
+-                               &printer_name,
+-                               &printer_state,
+-                               &printer_state_reasons,
+-                               &printer_is_accepting_jobs);
+-        } else if (g_variant_n_children (parameters) == 11) {
+-                ipp_attribute_t *attr;
+-
+-                g_variant_get (parameters, "(&s&s&su&sbuu&s&su)",
+-                               &text,
+-                               &printer_uri,
+-                               &printer_name,
+-                               &printer_state,
+-                               &printer_state_reasons,
+-                               &printer_is_accepting_jobs,
+-                               &job_id,
+-                               &job_state,
+-                               &job_state_reasons,
+-                               &job_name,
+-                               &job_impressions_completed);
+-
++        if (notify_job_id > 0) {
+                 if ((http = httpConnectEncrypt (cupsServer (), ippPort (),
+                                                 cupsEncryption ())) == NULL) {
+                         g_debug ("Connection to CUPS server \'%s\' failed.", cupsServer ());
+                 } else {
+-                        job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", job_id);
++                        job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", notify_job_id);
+ 
+                         request = ippNewRequest (IPP_GET_JOB_ATTRIBUTES);
+                         ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_URI,
+@@ -447,12 +431,9 @@ on_cups_notification (GDBusConnection *connection,
+                         }
+                         g_free (job_uri);
+                 }
+-        } else {
+-                g_warning ("Invalid number of parameters for signal '%s'", signal_name);
+-                return;
+         }
+ 
+-        if (g_strcmp0 (signal_name, "PrinterAdded") == 0) {
++        if (g_strcmp0 (notify_subscribed_event, "printer-added") == 0) {
+                 cupsFreeDests (manager->priv->num_dests, manager->priv->dests);
+                 manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+ 
+@@ -463,7 +444,7 @@ on_cups_notification (GDBusConnection *connection,
+                         primary_text = g_strdup (_("Printer added"));
+                         secondary_text = g_strdup (printer_name);
+                 }
+-        } else if (g_strcmp0 (signal_name, "PrinterDeleted") == 0) {
++        } else if (g_strcmp0 (notify_subscribed_event, "printer-deleted") == 0) {
+                 if (is_local_dest (printer_name,
+                                    manager->priv->dests,
+                                    manager->priv->num_dests)) {
+@@ -474,7 +455,7 @@ on_cups_notification (GDBusConnection *connection,
+ 
+                 cupsFreeDests (manager->priv->num_dests, manager->priv->dests);
+                 manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+-        } else if (g_strcmp0 (signal_name, "JobCompleted") == 0 && my_job) {
++        } else if (g_strcmp0 (notify_subscribed_event, "job-completed") == 0 && my_job) {
+                 g_hash_table_remove (manager->priv->printing_printers,
+                                      printer_name);
+ 
+@@ -508,7 +489,7 @@ on_cups_notification (GDBusConnection *connection,
+                                 secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
+                                 break;
+                 }
+-        } else if (g_strcmp0 (signal_name, "JobState") == 0 && my_job) {
++        } else if (g_strcmp0 (notify_subscribed_event, "job-state-changed") == 0 && my_job) {
+                 switch (job_state) {
+                         case IPP_JOB_PROCESSING:
+                                 g_hash_table_insert (manager->priv->printing_printers,
+@@ -529,7 +510,7 @@ on_cups_notification (GDBusConnection *connection,
+                         default:
+                                 break;
+                 }
+-        } else if (g_strcmp0 (signal_name, "JobCreated") == 0 && my_job) {
++        } else if (g_strcmp0 (notify_subscribed_event, "job-created") == 0 && my_job) {
+                 if (job_state == IPP_JOB_PROCESSING) {
+                         g_hash_table_insert (manager->priv->printing_printers,
+                                              g_strdup (printer_name), NULL);
+@@ -539,7 +520,7 @@ on_cups_notification (GDBusConnection *connection,
+                         /* Translators: "print-job xy" on a printer */
+                         secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
+                 }
+-        } else if (g_strcmp0 (signal_name, "PrinterStateChanged") == 0) {
++        } else if (g_strcmp0 (notify_subscribed_event, "printer-state-changed") == 0) {
+                 cups_dest_t  *dest = NULL;
+                 const gchar  *tmp_printer_state_reasons = NULL;
+                 GSList       *added_reasons = NULL;
+@@ -823,6 +804,154 @@ on_cups_notification (GDBusConnection *connection,
+         }
+ }
+ 
++static gboolean
++process_new_notifications (gpointer user_data)
++{
++        GsdPrintNotificationsManager  *manager = (GsdPrintNotificationsManager *) user_data;
++        ipp_attribute_t               *attr;
++        const gchar                   *notify_subscribed_event = NULL;
++        const gchar                   *printer_name = NULL;
++        const gchar                   *notify_text = NULL;
++        const gchar                   *notify_printer_uri = NULL;
++        const gchar                   *job_state_reasons = NULL;
++        const gchar                   *job_name = NULL;
++        const char                    *attr_name;
++        gboolean                       printer_is_accepting_jobs = FALSE;
++        gchar                         *printer_state_reasons = NULL;
++        gchar                        **reasons;
++        guint                          notify_job_id = 0;
++        ipp_t                         *request;
++        ipp_t                         *response;
++        gint                           printer_state = -1;
++        gint                           job_state = -1;
++        gint                           job_impressions_completed = -1;
++        gint                           notify_sequence_number = -1;
++        gint                           i;
++
++        request = ippNewRequest (IPP_GET_NOTIFICATIONS);
++
++        ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_NAME,
++                      "requesting-user-name", NULL, cupsUser ());
++
++        ippAddInteger (request, IPP_TAG_OPERATION, IPP_TAG_INTEGER,
++                       "notify-subscription-ids", manager->priv->subscription_id);
++
++        ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL,
++                      "/printers/");
++
++        ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri", NULL,
++                      "/jobs/");
++
++        ippAddInteger (request, IPP_TAG_OPERATION, IPP_TAG_INTEGER,
++                       "notify-sequence-numbers",
++                       manager->priv->last_notify_sequence_number + 1);
++
++
++        response = cupsDoRequest (CUPS_HTTP_DEFAULT, request, "/");
++
++
++        for (attr = ippFindAttribute (response, "notify-sequence-number", IPP_TAG_INTEGER);
++             attr != NULL;
++             attr = ippNextAttribute (response)) {
++
++                attr_name = ippGetName (attr);
++                if (g_strcmp0 (attr_name, "notify-sequence-number") == 0) {
++                        notify_sequence_number = ippGetInteger (attr, 0);
++
++                        if (notify_sequence_number > manager->priv->last_notify_sequence_number)
++                                manager->priv->last_notify_sequence_number = notify_sequence_number;
++
++                        if (notify_subscribed_event != NULL) {
++                                process_cups_notification (manager,
++                                                           notify_subscribed_event,
++                                                           notify_text,
++                                                           notify_printer_uri,
++                                                           printer_name,
++                                                           printer_state,
++                                                           printer_state_reasons,
++                                                           printer_is_accepting_jobs,
++                                                           notify_job_id,
++                                                           job_state,
++                                                           job_state_reasons,
++                                                           job_name,
++                                                           job_impressions_completed);
++
++                                g_clear_pointer (&printer_state_reasons, g_free);
++                                g_clear_pointer (&job_state_reasons, g_free);
++                        }
++
++                        notify_subscribed_event = NULL;
++                        notify_text = NULL;
++                        notify_printer_uri = NULL;
++                        printer_name = NULL;
++                        printer_state = -1;
++                        printer_state_reasons = NULL;
++                        printer_is_accepting_jobs = FALSE;
++                        notify_job_id = 0;
++                        job_state = -1;
++                        job_state_reasons = NULL;
++                        job_name = NULL;
++                        job_impressions_completed = -1;
++                } else if (g_strcmp0 (attr_name, "notify-subscribed-event") == 0) {
++                        notify_subscribed_event = ippGetString (attr, 0, NULL);
++                } else if (g_strcmp0 (attr_name, "notify-text") == 0) {
++                        notify_text = ippGetString (attr, 0, NULL);
++                } else if (g_strcmp0 (attr_name, "notify-printer-uri") == 0) {
++                        notify_printer_uri = ippGetString (attr, 0, NULL);
++                } else if (g_strcmp0 (attr_name, "printer-name") == 0) {
++                        printer_name = ippGetString (attr, 0, NULL);
++                } else if (g_strcmp0 (attr_name, "printer-state") == 0) {
++                        printer_state = ippGetInteger (attr, 0);
++                } else if (g_strcmp0 (attr_name, "printer-state-reasons") == 0) {
++                        reasons = g_new0 (gchar *, ippGetCount (attr) + 1);
++                        for (i = 0; i < ippGetCount (attr); i++)
++                                reasons[i] = g_strdup (ippGetString (attr, i, NULL));
++                        printer_state_reasons = g_strjoinv (",", reasons);
++                        g_strfreev (reasons);
++                } else if (g_strcmp0 (attr_name, "printer-is-accepting-jobs") == 0) {
++                        printer_is_accepting_jobs = ippGetBoolean (attr, 0);
++                } else if (g_strcmp0 (attr_name, "notify-job-id") == 0) {
++                        notify_job_id = ippGetInteger (attr, 0);
++                } else if (g_strcmp0 (attr_name, "job-state") == 0) {
++                        job_state = ippGetInteger (attr, 0);
++                } else if (g_strcmp0 (attr_name, "job-state-reasons") == 0) {
++                        reasons = g_new0 (gchar *, ippGetCount (attr) + 1);
++                        for (i = 0; i < ippGetCount (attr); i++)
++                                reasons[i] = g_strdup (ippGetString (attr, i, NULL));
++                        job_state_reasons = g_strjoinv (",", reasons);
++                        g_strfreev (reasons);
++                } else if (g_strcmp0 (attr_name, "job-name") == 0) {
++                        job_name = ippGetString (attr, 0, NULL);
++                } else if (g_strcmp0 (attr_name, "job-impressions-completed") == 0) {
++                        job_impressions_completed = ippGetInteger (attr, 0);
++                }
++        }
++
++        if (notify_subscribed_event != NULL) {
++                process_cups_notification (manager,
++                                           notify_subscribed_event,
++                                           notify_text,
++                                           notify_printer_uri,
++                                           printer_name,
++                                           printer_state,
++                                           printer_state_reasons,
++                                           printer_is_accepting_jobs,
++                                           notify_job_id,
++                                           job_state,
++                                           job_state_reasons,
++                                           job_name,
++                                           job_impressions_completed);
++
++                g_clear_pointer (&printer_state_reasons, g_free);
++                g_clear_pointer (&job_state_reasons, g_free);
++        }
++
++        if (response != NULL)
++                ippDelete (response);
++
++        return TRUE;
++}
++
+ static void
+ scp_handler (GsdPrintNotificationsManager *manager,
+              gboolean                      start)
+@@ -1167,6 +1296,7 @@ gsd_print_notifications_manager_start (GsdPrintNotificationsManager *manager,
+         manager->priv->active_notifications = NULL;
+         manager->priv->cups_bus_connection = NULL;
+         manager->priv->cups_connection_timeout_id = 0;
++        manager->priv->last_notify_sequence_number = -1;
+ 
+         g_idle_add (gsd_print_notifications_manager_start_idle, manager);
+ 
+-- 
+1.8.3.1
+
diff --git a/0011-print-notifications-Regularly-check-for-notification.patch b/0011-print-notifications-Regularly-check-for-notification.patch
new file mode 100644
index 0000000..efccec8
--- /dev/null
+++ b/0011-print-notifications-Regularly-check-for-notification.patch
@@ -0,0 +1,56 @@
+From 4880601129b1e291883559794e27d3c8371d14b4 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 15:50:19 +0200
+Subject: [PATCH 11/12] print-notifications: Regularly check for notifications
+ from remote CUPS servers
+
+Get new notifications every 60 seconds if the CUPS server is a remote one.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=678623
+---
+ plugins/print-notifications/gsd-print-notifications-manager.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 5e229c1..26c630e 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -52,6 +52,7 @@
+ #define CONNECTING_TIMEOUT               60
+ #define REASON_TIMEOUT                   15000
+ #define CUPS_CONNECTION_TEST_INTERVAL    300
++#define CHECK_INTERVAL                   60 /* secs */
+ 
+ #if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
+ #define HAVE_CUPS_1_6 1
+@@ -75,6 +76,7 @@ struct GsdPrintNotificationsManagerPrivate
+         GHashTable                   *printing_printers;
+         GList                        *active_notifications;
+         guint                         cups_connection_timeout_id;
++        guint                         check_source_id;
+         guint                         cups_dbus_subscription_id;
+         guint                         renew_source_id;
+         gint                          last_notify_sequence_number;
+@@ -1177,6 +1179,7 @@ cups_connection_test_cb (GObject      *source_object,
+                 g_debug ("Got dests from remote CUPS server.");
+ 
+                 renew_subscription_timeout_enable (manager, TRUE, TRUE);
++                manager->priv->check_source_id = g_timeout_add_seconds (CHECK_INTERVAL, process_new_notifications, manager);
+         } else {
+                 g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
+                 if (manager->priv->cups_connection_timeout_id == 0)
+@@ -1327,6 +1330,11 @@ gsd_print_notifications_manager_stop (GsdPrintNotificationsManager *manager)
+ 
+         renew_subscription_timeout_enable (manager, FALSE, FALSE);
+ 
++        if (manager->priv->check_source_id > 0) {
++                g_source_remove (manager->priv->check_source_id);
++                manager->priv->check_source_id = 0;
++        }
++
+         if (manager->priv->subscription_id >= 0)
+                 cancel_subscription (manager->priv->subscription_id);
+ 
+-- 
+1.8.3.1
+
diff --git a/0012-print-notifications-Show-final-job-states-for-remote.patch b/0012-print-notifications-Show-final-job-states-for-remote.patch
new file mode 100644
index 0000000..737f0a2
--- /dev/null
+++ b/0012-print-notifications-Show-final-job-states-for-remote.patch
@@ -0,0 +1,2782 @@
+From 9dd8a7cde4a2e282c92e7f7567d48560387301f1 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Wed, 31 Jul 2013 17:16:52 +0200
+Subject: [PATCH 12/12] print-notifications: Show final job states for remote
+ CUPS server
+
+Remote CUPS servers send information about final state of print jobs
+in job-state-change event instead of in job-completed event.
+Add translation context to those messages and update *.po files.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=678623
+---
+
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -468,27 +468,27 @@ process_cups_notification (GsdPrintNotif
+                                 break;
+                         case IPP_JOB_STOPPED:
+                                 /* Translators: A print job has been stopped */
+-                                primary_text = g_strdup (_("Printing stopped"));
++                                primary_text = g_strdup (C_("print job state", "Printing stopped"));
+                                 /* Translators: "print-job xy" on a printer */
+-                                secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
+                                 break;
+                         case IPP_JOB_CANCELED:
+                                 /* Translators: A print job has been canceled */
+-                                primary_text = g_strdup (_("Printing canceled"));
++                                primary_text = g_strdup (C_("print job state", "Printing canceled"));
+                                 /* Translators: "print-job xy" on a printer */
+-                                secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
+                                 break;
+                         case IPP_JOB_ABORTED:
+                                 /* Translators: A print job has been aborted */
+-                                primary_text = g_strdup (_("Printing aborted"));
++                                primary_text = g_strdup (C_("print job state", "Printing aborted"));
+                                 /* Translators: "print-job xy" on a printer */
+-                                secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
+                                 break;
+                         case IPP_JOB_COMPLETED:
+                                 /* Translators: A print job has been completed */
+-                                primary_text = g_strdup (_("Printing completed"));
++                                primary_text = g_strdup (C_("print job state", "Printing completed"));
+                                 /* Translators: "print-job xy" on a printer */
+-                                secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
+                                 break;
+                 }
+         } else if (g_strcmp0 (notify_subscribed_event, "job-state-changed") == 0 && my_job) {
+@@ -498,16 +498,41 @@ process_cups_notification (GsdPrintNotif
+                                                      g_strdup (printer_name), NULL);
+ 
+                                 /* Translators: A job is printing */
+-                                primary_text = g_strdup (_("Printing"));
++                                primary_text = g_strdup (C_("print job state", "Printing"));
+                                 /* Translators: "print-job xy" on a printer */
+-                                secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
+                                 break;
+                         case IPP_JOB_STOPPED:
++                                g_hash_table_remove (manager->priv->printing_printers,
++                                                     printer_name);
++                                /* Translators: A print job has been stopped */
++                                primary_text = g_strdup (C_("print job state", "Printing stopped"));
++                                /* Translators: "print-job xy" on a printer */
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
++                                break;
+                         case IPP_JOB_CANCELED:
++                                g_hash_table_remove (manager->priv->printing_printers,
++                                                     printer_name);
++                                /* Translators: A print job has been canceled */
++                                primary_text = g_strdup (C_("print job state", "Printing canceled"));
++                                /* Translators: "print-job xy" on a printer */
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
++                                break;
+                         case IPP_JOB_ABORTED:
++                                g_hash_table_remove (manager->priv->printing_printers,
++                                                     printer_name);
++                                /* Translators: A print job has been aborted */
++                                primary_text = g_strdup (C_("print job state", "Printing aborted"));
++                                /* Translators: "print-job xy" on a printer */
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
++                                break;
+                         case IPP_JOB_COMPLETED:
+                                 g_hash_table_remove (manager->priv->printing_printers,
+                                                      printer_name);
++                                /* Translators: A print job has been completed */
++                                primary_text = g_strdup (C_("print job state", "Printing completed"));
++                                /* Translators: "print-job xy" on a printer */
++                                secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
+                                 break;
+                         default:
+                                 break;
+@@ -518,9 +543,9 @@ process_cups_notification (GsdPrintNotif
+                                              g_strdup (printer_name), NULL);
+ 
+                         /* Translators: A job is printing */
+-                        primary_text = g_strdup (_("Printing"));
++                        primary_text = g_strdup (C_("print job state", "Printing"));
+                         /* Translators: "print-job xy" on a printer */
+-                        secondary_text = g_strdup_printf (_("\"%s\" on %s"), job_name, printer_name);
++                        secondary_text = g_strdup_printf (C_("print job", "\"%s\" on %s"), job_name, printer_name);
+                 }
+         } else if (g_strcmp0 (notify_subscribed_event, "printer-state-changed") == 0) {
+                 cups_dest_t  *dest = NULL;
+--- a/po/ar.po
++++ b/po/ar.po
+@@ -2645,6 +2645,7 @@ msgstr "حُذِفت الطابعة"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "أُوقِفت الطباعة"
+ 
+@@ -2656,27 +2657,32 @@ msgstr "أُوقِفت الطباعة"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:512
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "‏\"%s\"في %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "أُلغِيت الطباعة"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:472
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "أُجهِضت الطباعة"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "تمت الطباعة"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:490
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:510
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "تُطبَع"
+ 
+--- a/po/as.po
++++ b/po/as.po
+@@ -2675,6 +2675,7 @@ msgstr "প্ৰিন্টাৰ আà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "প্ৰিন্টিং বন্ধ হৈছে"
+ 
+@@ -2686,27 +2687,32 @@ msgstr "প্ৰিন্টিং বà
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%s ত \"%s\""
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "প্ৰিন্টিং বাতিল কৰা হৈছে"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "প্ৰিন্টিং বাতিল কৰা হৈছে"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "প্ৰিন্টিং সম্পূৰ্ণ"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "প্ৰিন্টিং"
+ 
+--- a/po/ast.po
++++ b/po/ast.po
+@@ -2767,6 +2767,7 @@ msgstr "Imprentadora desaniciada"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:322
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Imprentación detenida"
+ 
+@@ -2778,27 +2779,32 @@ msgstr "Imprentación detenida"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:356
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:371
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» en %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:328
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Imprentación encaboxada"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:334
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Imprentación albortada"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:340
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Imprentación completa"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:354
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:369
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Imprentando"
+ 
+--- a/po/be.po
++++ b/po/be.po
+@@ -2673,6 +2673,7 @@ msgstr "Прынтар выдалены"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Друк спынены"
+ 
+@@ -2684,27 +2685,32 @@ msgstr "Друк спынены"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" на %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Друк скасаваны"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Друк перарваны"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Друк скончаны"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Друк"
+ 
+--- a/po/bg.po
++++ b/po/bg.po
+@@ -2702,6 +2702,7 @@ msgstr "Принтерът е махна
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Печатането е спряно"
+ 
+@@ -2713,27 +2714,32 @@ msgstr "Печатането е спря
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:512
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "„%s“ на %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Печатането е отказано"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:472
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Печатането е преустановено"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Печатането завърши"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:490
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:510
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Печатане"
+ 
+--- a/po/bn_IN.po
++++ b/po/bn_IN.po
+@@ -2435,6 +2435,7 @@ msgstr "প্রিন্টার সà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "প্রিন্টের কাজ বন্ধ করা হয়েছে"
+ 
+@@ -2446,27 +2447,32 @@ msgstr "প্রিন্টের কà
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:512
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\", %s-র উপর"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "প্রিন্টের কাজ বাতিল করা হয়েছে"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:472
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "প্রিন্টের কাজ পরিত্যাগ করা হয়েছে"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "প্রিন্টের কাজ সমাপ্ত হয়েছে"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:490
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:510
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "প্রিন্ট করা হচ্ছে"
+ 
+--- a/po/bn.po
++++ b/po/bn.po
+@@ -1141,6 +1141,7 @@ msgstr "প্রিন্টার অà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:319
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "প্রিন্টার বন্ধ"
+ 
+@@ -1152,21 +1153,25 @@ msgstr "প্রিন্টার বà
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:353
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:368
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%s এর \"%s\""
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:325
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "মুদ্রণ বাতিল"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:331
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "মুদ্রণ বন্ধ"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:337
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "মুদ্রণ সম্পন্ন"
+ 
+@@ -1174,6 +1179,7 @@ msgstr "মুদ্রণ সম্পà
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:351
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:366
+ #| msgid "Hinting"
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "মুদ্রণ"
+ 
+--- a/po/ca.po
++++ b/po/ca.po
+@@ -2698,6 +2698,7 @@ msgstr "S'ha suprimit la impressora"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "S'ha aturat la impressió"
+ 
+@@ -2709,21 +2710,25 @@ msgstr "S'ha aturat la impressió"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» a %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "S'ha cancel·lat la impressió"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "S'ha interromput la impressió"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "S'ha completat la impressió"
+ 
+@@ -2731,6 +2736,7 @@ msgstr "S'ha completat la impressió"
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "S'està imprimint"
+ 
+--- a/po/ca at valencia.po
++++ b/po/ca at valencia.po
+@@ -2698,6 +2698,7 @@ msgstr "S'ha suprimit la impressora"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "S'ha parat la impressió"
+ 
+@@ -2709,21 +2710,25 @@ msgstr "S'ha parat la impressió"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» a %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "S'ha cancel·lat la impressió"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "S'ha interromput la impressió"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "S'ha completat la impressió"
+ 
+@@ -2731,6 +2736,7 @@ msgstr "S'ha completat la impressió"
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "S'està imprimint"
+ 
+--- a/po/crh.po
++++ b/po/crh.po
+@@ -2928,6 +2928,7 @@ msgstr "Yazıcı çıkartıldı"
+ # tr
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Yazıcı durdu"
+ 
+@@ -2940,24 +2941,28 @@ msgstr "Yazıcı durdu"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" şunda %s"
+ 
+ # tr
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Yazdırma iptal edildi"
+ 
+ # tr
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Yazdırma durduruldu"
+ 
+ # tr
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Yazdırma tamamlandı"
+ 
+@@ -2965,6 +2970,7 @@ msgstr "Yazdırma tamamlandı"
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Yazdırılıyor"
+ 
+--- a/po/cs.po
++++ b/po/cs.po
+@@ -2693,6 +2693,7 @@ msgstr "Tiskárna odstraněna"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Tiskárna zastavena"
+ 
+@@ -2704,27 +2705,32 @@ msgstr "Tiskárna zastavena"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "„%s“ na tiskárně „%s“"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Tisk zrušen"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Tisk přerušen"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Tisk dokončen"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Tiskne se"
+ 
+--- a/po/da.po
++++ b/po/da.po
+@@ -2693,6 +2693,7 @@ msgstr "Printer fjernet"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Udskrift standset"
+ 
+@@ -2704,21 +2705,25 @@ msgstr "Udskrift standset"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" på %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Udskrift annulleret"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Udskrift afbrudt"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Udskrift fuldført"
+ 
+@@ -2726,6 +2731,7 @@ msgstr "Udskrift fuldført"
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Udskriver"
+ 
+--- a/po/de.po
++++ b/po/de.po
+@@ -2736,6 +2736,7 @@ msgstr "Drucker entfernt"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Drucken wurde gestoppt"
+ 
+@@ -2747,27 +2748,32 @@ msgstr "Drucken wurde gestoppt"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "»%s« auf %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Drucken wurde unterbrochen"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Drucken wurde abgebrochen"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Drucken wurde abgeschlossen"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Druckvorgang läuft"
+ 
+--- a/po/el.po
++++ b/po/el.po
+@@ -2749,6 +2749,7 @@ msgstr "Αφαιρέθηκε ο εκτυ
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Η εκτύπωση σταμάτησε"
+ 
+@@ -2760,27 +2761,32 @@ msgstr "Η εκτύπωση σταμάτ
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" στο %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Η εκτύπωση ακυρώθηκε"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Η εκτύπωση ματαιώθηκε"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Η εκτύπωση ολοκληρώθηκε"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Εκτύπωση"
+ 
+--- a/po/en_GB.po
++++ b/po/en_GB.po
+@@ -2606,6 +2606,7 @@ msgstr "Printer removed"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Printing stopped"
+ 
+@@ -2617,27 +2618,32 @@ msgstr "Printing stopped"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" on %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Printing cancelled"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Printing aborted"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Printing completed"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Printing"
+ 
+--- a/po/eo.po
++++ b/po/eo.po
+@@ -2610,6 +2610,7 @@ msgstr "Presilo forigita"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:322
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr ""
+ 
+@@ -2621,27 +2622,32 @@ msgstr ""
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:356
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:371
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr ""
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:328
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr ""
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:334
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Presado ĉesigita"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:340
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr ""
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:354
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:369
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Presante"
+ 
+--- a/po/es.po
++++ b/po/es.po
+@@ -2696,6 +2696,7 @@ msgstr "Impresora quitada"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Impresión detenida"
+ 
+@@ -2707,27 +2708,32 @@ msgstr "Impresión detenida"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» en %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Impresión cancelada"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Impresión abortada"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Impresión completa"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Imprimiendo"
+ 
+--- a/po/et.po
++++ b/po/et.po
+@@ -1963,27 +1963,33 @@ msgid "Printer removed"
+ msgstr "Printer eemaldati"
+ 
+ #. Translators: A print job has been stopped
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Printer on peatatud"
+ 
+ #. Translators: "print-job xy" on a printer
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" printeris %s"
+ 
+ #. Translators: A print job has been canceled
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Printimisest loobuti"
+ 
+ #. Translators: A print job has been aborted
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Printimine katkestati"
+ 
+ #. Translators: A print job has been completed
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Printimine lõpetatud"
+ 
+ #. Translators: A job is printing
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Printimine"
+ 
+--- a/po/eu.po
++++ b/po/eu.po
+@@ -2665,6 +2665,7 @@ msgstr "Inprimagailua kenduta"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Inprimatzea geldituta"
+ 
+@@ -2676,27 +2677,32 @@ msgstr "Inprimatzea geldituta"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" -- %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Inprimatzea bertan behera utzita"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Inprimatzea abortatuta"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Inprimatzea osatuta"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Inprimatzen"
+ 
+--- a/po/fa.po
++++ b/po/fa.po
+@@ -2481,6 +2481,7 @@ msgstr "چاپگر حذف شد"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:322
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "چاپ متوقف شد"
+ 
+@@ -2492,27 +2493,32 @@ msgstr "چاپ متوقف شد"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:356
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:371
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» بر روی %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:328
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "چاپ لغو شد"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:334
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "چاپ قطع شد"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:340
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "چاپ کامل شد"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:354
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:369
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "درحال چاپ"
+ 
+--- a/po/fi.po
++++ b/po/fi.po
+@@ -2656,6 +2656,7 @@ msgstr "Tulostin poistettu"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Tulostus on pysäytetty"
+ 
+@@ -2667,27 +2668,32 @@ msgstr "Tulostus on pysäytetty"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:512
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" tulostimella %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Tulostus on peruttu"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:472
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Tulostus peruttu"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Tulostus valmistui"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:490
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:510
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Tulostetaan"
+ 
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -2723,6 +2723,7 @@ msgstr "Imprimante enlevée"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "L'impression a été arrêtée"
+ 
+@@ -2734,27 +2735,32 @@ msgstr "L'impression a été arrêtée"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "« %s » sur %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Impression annulée"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Impression interrompue"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Impression terminée"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Impression"
+ 
+--- a/po/gl.po
++++ b/po/gl.po
+@@ -2695,6 +2695,7 @@ msgstr "Impresora retirada"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Impresión detida"
+ 
+@@ -2706,27 +2707,32 @@ msgstr "Impresión detida"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» en %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Impresión cancelada"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Impresión interrompida"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Impresión completa"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Imprimindo"
+ 
+--- a/po/gu.po
++++ b/po/gu.po
+@@ -2594,6 +2594,7 @@ msgstr "પ્રિન્ટર દૂà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "છાપન બંધ થયેલ છે"
+ 
+@@ -2605,27 +2606,32 @@ msgstr "છાપન બંધ થયે
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%s પર \"%s\""
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "છાપનને રદ કરેલ છે"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "છાપન કાઢી નાંખેલ છે"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "છાપન સમાપ્ત થયેલ છે"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "છાપી રહ્યા છે"
+ 
+--- a/po/he.po
++++ b/po/he.po
+@@ -2274,6 +2274,7 @@ msgstr "המדפסת הוסרה"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "ההדפסה נעצרה"
+ 
+@@ -2285,27 +2286,32 @@ msgstr "ההדפסה נעצרה"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "“%s„ במדפסת %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "ההדפסה בוטלה"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "ההדפסה התבטלה"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "ההדפסה הושלמה"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "בהדפסה"
+ 
+--- a/po/hi.po
++++ b/po/hi.po
+@@ -2704,6 +2704,7 @@ msgstr "मुद्रक हटायà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "मुद्रण रोक दिया"
+ 
+@@ -2715,27 +2716,32 @@ msgstr "मुद्रण रोक द
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" %s पर"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "छपाई रद्द कर दिया"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "छपाई निरस्त किया गया"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "मुद्रण पूरा हुआ"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "छापा जा रहा है"
+ 
+--- a/po/hu.po
++++ b/po/hu.po
+@@ -2665,6 +2665,7 @@ msgstr "Nyomtató eltávolítva"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Nyomtatás leállítva"
+ 
+@@ -2676,27 +2677,32 @@ msgstr "Nyomtatás leállítva"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "„%s” ezen: %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Nyomtatás megszakítva"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Nyomtatás félbeszakítva"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Nyomtatás kész"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Nyomtatás"
+ 
+--- a/po/id.po
++++ b/po/id.po
+@@ -2635,6 +2635,7 @@ msgstr "Pencetak dihapus"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Mencetak dihentikan"
+ 
+@@ -2646,27 +2647,32 @@ msgstr "Mencetak dihentikan"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" pada %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Mencetak dibatalkan"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Mencetak digagalkan"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Mencetak selesai"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Mencetak"
+ 
+--- a/po/it.po
++++ b/po/it.po
+@@ -2708,6 +2708,7 @@ msgstr "Stampante rimossa"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Stampa fermata"
+ 
+@@ -2719,27 +2720,32 @@ msgstr "Stampa fermata"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» su %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Stampa annullata"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Stampa interrotta"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Stampa completata"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "In stampa"
+ 
+--- a/po/ja.po
++++ b/po/ja.po
+@@ -2349,6 +2349,7 @@ msgstr "プリンターが削除されã
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "印刷が停止されました"
+ 
+@@ -2360,27 +2361,32 @@ msgstr "印刷が停止されました"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%2$s\" のジョブ \"%1$s\""
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "印刷がキャンセルされました"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "印刷が中止されました"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "印刷が完了しました"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "印刷"
+ 
+--- a/po/km.po
++++ b/po/km.po
+@@ -2590,6 +2590,7 @@ msgstr "បាន​យក​ម៉ាáž
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "បាន​បញ្ឈប់​ការ​បោះពុម្ព"
+ 
+@@ -2601,27 +2602,32 @@ msgstr "បាន​បញ្ឈប់â€
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:512
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" លើ %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "បាន​បោះបង់​ការ​បោះពុម្ព"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:472
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "បាន​បោះបង់​ការ​បោះពុម្ព"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "បាន​បញ្ចប់​ការ​បោះពុម្ព"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:490
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:510
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "កំពុង​បោះពុម្ព"
+ 
+--- a/po/kn.po
++++ b/po/kn.po
+@@ -2733,6 +2733,7 @@ msgstr "ಮುದ್ರಕವನ್ನà³
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "ಮುದ್ರಣವನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ"
+ 
+@@ -2744,27 +2745,32 @@ msgstr "ಮುದ್ರಣವನ್ನà³
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\", %s ನಲ್ಲಿ"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "ಮುದ್ರಣವನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "ಮುದ್ರಣವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "ಮುದ್ರಣ ಪೂರ್ಣಗೊಂಡಿದೆ"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "ಮುದ್ರಣ"
+ 
+--- a/po/ko.po
++++ b/po/ko.po
+@@ -2568,6 +2568,7 @@ msgstr "프린터 제거"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "프린터 중지"
+ 
+@@ -2579,27 +2580,32 @@ msgstr "프린터 중지"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" (프린터 %s)"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "인쇄 취소"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "인쇄 강제 중지"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "인쇄 완료"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "인쇄 중"
+ 
+--- a/po/lt.po
++++ b/po/lt.po
+@@ -2690,6 +2690,7 @@ msgstr "Spausdintuvas pašalintas"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Spausdinimas sustabdytas"
+ 
+@@ -2701,27 +2702,32 @@ msgstr "Spausdinimas sustabdytas"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "„%s“ spausdintuve %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Spausdinimas atšauktas"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Spausdinimas nutrauktas"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Spausdinimas baigtas"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Spausdinimas"
+ 
+--- a/po/lv.po
++++ b/po/lv.po
+@@ -2694,6 +2694,7 @@ msgstr "Printeris izņemts"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Drukāšana apturēta"
+ 
+@@ -2705,27 +2706,32 @@ msgstr "Drukāšana apturēta"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" uz %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Drukāšanas atcelta"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Drukāšana atcelta"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Drukāšana pabeigta"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Drukā"
+ 
+--- a/po/mk.po
++++ b/po/mk.po
+@@ -2449,6 +2449,7 @@ msgstr "Печатачот е отстр
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:449
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Печатачот е стопиран"
+ 
+@@ -2460,21 +2461,25 @@ msgstr "Печатачот е стопи
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:511
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "„%s“ на %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:455
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Печатењето е откажано"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:461
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Печатењето е прекинато"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:467
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Печатењето е завршено"
+ 
+@@ -2482,6 +2487,7 @@ msgstr "Печатењето е завр
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:484
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:509
+ #| msgid "Hinting"
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Печатам"
+ 
+--- a/po/ml.po
++++ b/po/ml.po
+@@ -2699,6 +2699,7 @@ msgstr "പ്രിന്റര്‍ à
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "പ്രിന്റിങ് നിര്‍ത്തിയിരിയ്ക്കുന്നു"
+ 
+@@ -2710,21 +2711,25 @@ msgstr "പ്രിന്റിങ് à
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\", %s-ല്‍"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "പ്രിന്റിങ് റദ്ദാക്കിയിരിയ്ക്കുന്നു"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "പ്രിന്റിങ് നിര്‍ത്തിയിരിയ്ക്കുന്നു"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "പ്രിന്റിങ് പൂര്‍ത്തിയാക്കിയിരിയ്ക്കുന്നു"
+ 
+@@ -2732,6 +2737,7 @@ msgstr "പ്രിന്റിങ് à
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
+ #| msgid "Hinting"
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "പ്രിന്റ് ചെയ്യുന്നു"
+ 
+--- a/po/mr.po
++++ b/po/mr.po
+@@ -2696,6 +2696,7 @@ msgstr "छपाईयंत्र कà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "छपाई थांबवले"
+ 
+@@ -2707,27 +2708,32 @@ msgstr "छपाई थांबवलà
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\", %s वरील"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "छपाई रद्द केली"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "छपाई रद्द केली"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "छपाई पूर्ण झाली"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "छपाई"
+ 
+--- a/po/nb.po
++++ b/po/nb.po
+@@ -2551,6 +2551,7 @@ msgstr "Skriver fjernet"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Utskrift stoppet"
+ 
+@@ -2562,27 +2563,32 @@ msgstr "Utskrift stoppet"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» på %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Utskrift avbrutt"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Utskrift terminert"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Utskrift fullført"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Skriver ut"
+ 
+--- a/po/nl.po
++++ b/po/nl.po
+@@ -2730,6 +2730,7 @@ msgstr "Printer verwijderd"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Afdrukken gestopt"
+ 
+@@ -2741,27 +2742,32 @@ msgstr "Afdrukken gestopt"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "‘%s’ op %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Afdrukken geannuleerd"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Afdrukken afgebroken"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Afdrukken voltooid"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Afdrukken"
+ 
+--- a/po/or.po
++++ b/po/or.po
+@@ -2724,6 +2724,7 @@ msgstr "ମୁଦ୍ରଣୀକୁ ବà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "ମୁଦ୍ରଣକରିବା ଅଟକିଛି"
+ 
+@@ -2735,21 +2736,25 @@ msgstr "ମୁଦ୍ରଣକରିବà¬
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\"  %s ଉପରେ ଅଛି"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "ମୁଦ୍ରଣକରିବା ବାତିଲ ହୋଇଛି"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "ମୁଦ୍ରଣକରିବା ବନ୍ଦ ହୋଇଛି"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "ମୁଦ୍ରଣ କ୍ରିୟା ସମାପ୍ତ ହୋଇଛି"
+ 
+@@ -2757,6 +2762,7 @@ msgstr "ମୁଦ୍ରଣ କ୍ରିà
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
+ #| msgid "Hinting"
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "ମୁଦ୍ରଣ କରୁଅଛି"
+ 
+--- a/po/pa.po
++++ b/po/pa.po
+@@ -2692,6 +2692,7 @@ msgstr "ਪਰਿੰਟਰ ਹਟਾਇà
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "ਪਰਿੰਟ ਕਰਨਾ ਰੋਕਿਆ"
+ 
+@@ -2703,27 +2704,32 @@ msgstr "ਪਰਿੰਟ ਕਰਨਾ ਰ
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%2$s ਉੱਤੇ \"%1$s\""
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "ਪਰਿੰਟ ਕਰਨਾ ਰੱਦ ਕੀਤਾ"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "ਪਰਿੰਟ ਕਰਨਾ ਅਧੂਰਾ ਛੱਡਿਆ"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "ਪਰਿੰਟ ਕਾਰਵਾਈ ਪੂਰੀ ਹੋਈ"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "ਪਰਿੰਟਿੰਗ"
+ 
+--- a/po/pl.po
++++ b/po/pl.po
+@@ -2713,6 +2713,7 @@ msgstr "Usunięto drukarkę"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Zatrzymano drukowanie"
+ 
+@@ -2724,27 +2725,32 @@ msgstr "Zatrzymano drukowanie"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" w %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Anulowano drukowanie"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Przerwano drukowanie"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Ukończono drukowanie"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Drukowanie"
+ 
+--- a/po/pt_BR.po
++++ b/po/pt_BR.po
+@@ -2692,6 +2692,7 @@ msgstr "Impressora removida"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Impressora parada"
+ 
+@@ -2703,27 +2704,32 @@ msgstr "Impressora parada"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" na %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Impressão cancelada"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Impressão abortada"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Impressão completa"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Imprimindo"
+ 
+--- a/po/pt.po
++++ b/po/pt.po
+@@ -2677,6 +2677,7 @@ msgstr "Impressora removida"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Impressão parada"
+ 
+@@ -2688,27 +2689,32 @@ msgstr "Impressão parada"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" em %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Impressão cancelada"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Impressão abortada"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Impressão terminada"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "A Imprimir"
+ 
+--- a/po/ro.po
++++ b/po/ro.po
+@@ -2777,6 +2777,7 @@ msgstr "Imprimantă eliminată"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:445
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Tipărirea s-a oprit"
+ 
+@@ -2788,27 +2789,32 @@ msgstr "Tipărirea s-a oprit"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:482
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:507
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "„%s” pe %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:451
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Tipărirea a fost anulată"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:457
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Tipărirea a fost oprită forțat"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:463
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Tipărirea s-a terminat"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:505
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Se tipărește"
+ 
+--- a/po/ru.po
++++ b/po/ru.po
+@@ -2688,6 +2688,7 @@ msgstr "Принтер удалён"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Принтер остановлен"
+ 
+@@ -2699,27 +2700,32 @@ msgstr "Принтер остановлÐ
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» в %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Печать отменена"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Печать прервана"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Печать завершена"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Печать"
+ 
+--- a/po/sk.po
++++ b/po/sk.po
+@@ -2947,6 +2947,7 @@ msgstr "Tlačiareň bola odstránená"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Tlač bola zastavená"
+ 
+@@ -2958,27 +2959,32 @@ msgstr "Tlač bola zastavená"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "„%s“ na %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Tlač bola zrušená"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Tlač bola prerušená"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Tlač bola dokončená"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Tlačí sa"
+ 
+--- a/po/sl.po
++++ b/po/sl.po
+@@ -2690,6 +2690,7 @@ msgstr "Tiskalnik je odstranjen."
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Tiskanje je zaustavljeno."
+ 
+@@ -2701,27 +2702,32 @@ msgstr "Tiskanje je zaustavljeno."
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" na %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Tiskanje je preklicano."
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Tiskanje je prekinjeno."
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Tiskanje je končano."
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Tiskanje"
+ 
+--- a/po/sr at latin.po
++++ b/po/sr at latin.po
+@@ -2714,6 +2714,7 @@ msgstr "Štampač je uklonjen"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Štampanje je zaustavljeno"
+ 
+@@ -2725,21 +2726,25 @@ msgstr "Štampanje je zaustavljeno"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "Posao „%s“ na štampaču „%s“"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Štampanje je otkazano"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Štampanje je prekinuto"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Štampanje je završeno"
+ 
+@@ -2750,6 +2755,7 @@ msgstr "Štampanje je završeno"
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Štampam"
+ 
+--- a/po/sr.po
++++ b/po/sr.po
+@@ -2714,6 +2714,7 @@ msgstr "Штампач је уклоње
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Штампање је заустављено"
+ 
+@@ -2725,21 +2726,25 @@ msgstr "Штампање је зауст
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "Посао „%s“ на штампачу „%s“"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Штампање је отказано"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Штампање је прекинуто"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Штампање је завршено"
+ 
+@@ -2750,6 +2755,7 @@ msgstr "Штампање је заврш
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Штампам"
+ 
+--- a/po/sv.po
++++ b/po/sv.po
+@@ -2822,6 +2822,7 @@ msgstr "Skrivaren togs bort"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:448
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Utskrifter har stoppats"
+ 
+@@ -2833,27 +2834,32 @@ msgstr "Utskrifter har stoppats"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:500
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" på %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:454
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Utskriften avbröts"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Utskriften avbröts"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Utskriften är färdig"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:498
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Skriver ut"
+ 
+--- a/po/ta.po
++++ b/po/ta.po
+@@ -2627,6 +2627,7 @@ msgstr "அச்சுப்பொறà®
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "அச்சிடுதல் நிறுத்தப்பட்டது"
+ 
+@@ -2638,27 +2639,32 @@ msgstr "அச்சிடுதல் à
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" %s மீது"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "அச்சிடுதல் ரத்துசெய்யப்பட்டது"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "அச்சிடுதல் கைவிடப்பட்டது"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "அச்சிடுதல் பூர்த்தியானது"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "அச்சடித்தல்"
+ 
+--- a/po/te.po
++++ b/po/te.po
+@@ -2734,6 +2734,7 @@ msgstr "ప్రింటర్ ని
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "ప్రింటింగ్‌ని ఆపివేయబడెను"
+ 
+@@ -2745,27 +2746,32 @@ msgstr "ప్రింటింగ్â€
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%s పై \"%s\" ఉన్నది"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "ముద్రించుట ఆపివేయబడినది"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "ప్రింటింగ్ అర్దాంతముగా ఆపివేయబడినది"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "ముద్రించుట పూర్తయినది"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "ముద్రీకరించుచున్నది"
+ 
+--- a/po/th.po
++++ b/po/th.po
+@@ -2578,6 +2578,7 @@ msgstr "ลบเครื่องพà¸
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "หยุดงานพิมพ์แล้ว"
+ 
+@@ -2589,27 +2590,32 @@ msgstr "หยุดงานพิมà¸
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:512
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" ที่ %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "ยกเลิกงานพิมพ์แล้ว"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:472
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "เลิกพิมพ์งานพิมพ์แล้ว"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "งานพิมพ์เสร็จสมบูรณ์"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:490
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:510
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "กำลังพิมพ์"
+ 
+--- a/po/tr.po
++++ b/po/tr.po
+@@ -2263,6 +2263,7 @@ msgstr "Yazıcı çıkartıldı"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:322
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Yazıcı durdu"
+ 
+@@ -2274,27 +2275,32 @@ msgstr "Yazıcı durdu"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:356
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:371
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" şunda %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:328
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Yazdırma iptal edildi"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:334
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Yazdırma durduruldu"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:340
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Yazdırma tamamlandı"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:354
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:369
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Yazdırılıyor"
+ 
+--- a/po/ug.po
++++ b/po/ug.po
+@@ -2456,6 +2456,7 @@ msgstr "پرىنتېر چىقىرىۋېØ
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "پرىنتېر توختىتىلدى"
+ 
+@@ -2467,27 +2468,32 @@ msgstr "پرىنتېر توختىتىلØ
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%2$s دىكى \"%1$s\""
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "بېسىش ئەمەلدىن قالدۇرۇلدى"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "بېسىش توختىتىلدى"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "بېسىش تاماملاندى"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "بېسىش"
+ 
+--- a/po/uk.po
++++ b/po/uk.po
+@@ -2688,6 +2688,7 @@ msgstr "Принтер вилучено"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:460
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Принтер зупинено"
+ 
+@@ -2699,27 +2700,32 @@ msgstr "Принтер зупинено"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:512
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "«%s» на %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:466
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Друкування скасовано"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:472
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Друкування перервано"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:478
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Друкування завершено"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:490
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:510
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "Друкування"
+ 
+--- a/po/vi.po
++++ b/po/vi.po
+@@ -2579,6 +2579,7 @@ msgstr "Đã bỏ máy in"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "Đã dừng in"
+ 
+@@ -2590,27 +2591,32 @@ msgstr "Đã dừng in"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "\"%s\" trên %s"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "Đã huỷ bỏ in"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "Đã ngắt in"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "Đã hoàn tất in"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "In ấn"
+ 
+--- a/po/zh_CN.po
++++ b/po/zh_CN.po
+@@ -2592,6 +2592,7 @@ msgstr "打印机已移除"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:450
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "打印已暂停"
+ 
+@@ -2603,27 +2604,32 @@ msgstr "打印已暂停"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:482
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:502
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%2$s 上的“%1$s”"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:456
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "打印已取消"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:462
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "打印中止"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:468
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "打印完成"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:500
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "正在打印"
+ 
+--- a/po/zh_HK.po
++++ b/po/zh_HK.po
+@@ -2467,6 +2467,7 @@ msgstr "已移除打印機"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "已停止打印機"
+ 
+@@ -2478,27 +2479,32 @@ msgstr "已停止打印機"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%2$s 的「%1$s」"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "列印已取消"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "列印已中止"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "列印已完成"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "正在打印"
+ 
+--- a/po/zh_TW.po
++++ b/po/zh_TW.po
+@@ -2533,6 +2533,7 @@ msgstr "已移除印表機"
+ 
+ #. Translators: A print job has been stopped
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:474
++msgctxt "print job state"
+ msgid "Printing stopped"
+ msgstr "已停止印表機"
+ 
+@@ -2544,27 +2545,32 @@ msgstr "已停止印表機"
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:506
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:526
+ #, c-format
++msgctxt "print job"
+ msgid "\"%s\" on %s"
+ msgstr "%2$s 的「%1$s」"
+ 
+ #. Translators: A print job has been canceled
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:480
++msgctxt "print job state"
+ msgid "Printing canceled"
+ msgstr "列印已取消"
+ 
+ #. Translators: A print job has been aborted
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:486
++msgctxt "print job state"
+ msgid "Printing aborted"
+ msgstr "列印已中止"
+ 
+ #. Translators: A print job has been completed
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:492
++msgctxt "print job state"
+ msgid "Printing completed"
+ msgstr "列印已完成"
+ 
+ #. Translators: A job is printing
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:504
+ #: ../plugins/print-notifications/gsd-print-notifications-manager.c:524
++msgctxt "print job state"
+ msgid "Printing"
+ msgstr "正在列印"
+ 
+-- 
+1.8.3.1
+
diff --git a/gnome-settings-daemon.spec b/gnome-settings-daemon.spec
index f3566a2..4256541 100644
--- a/gnome-settings-daemon.spec
+++ b/gnome-settings-daemon.spec
@@ -1,6 +1,6 @@
 Name:           gnome-settings-daemon
 Version:        3.8.4
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        The daemon sharing settings from GNOME to GTK+/KDE applications
 
 Group:          System Environment/Daemons
@@ -13,6 +13,22 @@ Patch0:         %{name}-3.5.4-ppc-no-wacom.patch
 # g-i-s takes this role now
 Patch1:         0001-keyboard-Stop-adding-locale-based-input-sources-from.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=886845
+# https://bugzilla.gnome.org/show_bug.cgi?id=678623
+Patch2:         0001-print-notifications-Move-translator-comments-to-appr.patch
+Patch3:         0002-print-notifications-Coding-style-fixes.patch
+Patch4:         0003-print-notifications-Use-better-debugging-messages.patch
+Patch5:         0004-print-notifications-Honor-CUPS-default-port-number.patch
+Patch6:         0005-print-notifications-Connect-to-message-bus-asynchron.patch
+Patch7:         0006-print-notifications-Cancel-subscription-to-DBus-sign.patch
+Patch8:         0007-print-notifications-Stop-renewing-of-CUPS-subscripti.patch
+Patch9:         0008-print-notifications-Don-t-use-DBus-recipient-URI-for.patch
+Patch10:        0009-print-notifications-Don-t-run-connection-test-for-lo.patch
+Patch11:        0010-print-notifications-Use-IPP-method-for-getting-IPP-n.patch
+Patch12:        0011-print-notifications-Regularly-check-for-notification.patch
+Patch13:        0012-print-notifications-Show-final-job-states-for-remote.patch
+
+
 Requires: control-center-filesystem
 Requires: colord
 
@@ -80,6 +96,18 @@ The %{name}-updates package contains the updates plugin for %{name}
 %patch0 -p1 -b .ppc-no-wacom
 %endif
 %patch1 -p1
+%patch2 -p1 -b .translator-comments
+%patch3 -p1 -b .style-fixes
+%patch4 -p1 -b .debugging-messages
+%patch5 -p1 -b .CUPS-default-port
+%patch6 -p1 -b .connect-asynchronously
+%patch7 -p1 -b .cancel-subscription
+%patch8 -p1 -b .renew-subscription
+%patch9 -p1 -b .don-t-use-dbus
+%patch10 -p1 -b .connection-test
+%patch11 -p1 -b .use-IPP-method
+%patch12 -p1 -b .check-for-notifications
+%patch13 -p1 -b .final-job-states
 
 autoreconf -i -f
 
@@ -256,6 +284,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 %{_datadir}/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.xml
 
 %changelog
+* Wed Aug  7 2013 Marek Kasik <mkasik at redhat.com> - 3.8.4-2
+- Backport fixes for getting of notifications from remote CUPS servers
+- Resolves: #886845
+
 * Fri Jul 19 2013 Bastien Nocera <bnocera at redhat.com> 3.8.4-1
 - Update to 3.8.4
 


More information about the scm-commits mailing list