]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Merge changes from CUPS 1.3.1.
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Fri, 14 Sep 2007 02:27:22 +0000 (02:27 +0000)
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Fri, 14 Sep 2007 02:27:22 +0000 (02:27 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@470 a1ca3aef-8c08-0410-bb20-df032aa958be

88 files changed:
CHANGES.txt
CREDITS.txt
INSTALL.txt
Makefile
README.txt
backend/Makefile
backend/ipp.c
backend/lpd.c
backend/pap.c
backend/parallel.c
backend/runloop.c
backend/scsi-irix.c
backend/scsi-linux.c
backend/scsi.c
backend/serial.c
backend/socket.c
backend/usb-darwin.c
backend/usb-unix.c
backend/usb.c
cgi-bin/help.c
cgi-bin/template.c
conf/mime.convs.in
config-scripts/cups-common.m4
config-scripts/cups-directories.m4
config.h.in
cups/auth.c
cups/cups.h
cups/http-addr.c
cups/http-private.h
cups/language.c
cups/localize.c
cups/mark.c
cups/ppd.c
cups/test.ppd
cups/testppd.c
doc/Makefile
doc/cups-printable.css
doc/cups.css
doc/es/index.html.in
doc/help/spec-ppd.html
doc/help/translation.html
filter/pstops.c
filter/rastertolabel.c
locale/Makefile
locale/cups_da.po
locale/cups_de.po
locale/cups_es.po
locale/cups_et.po
locale/cups_fr.po
locale/cups_he.po
locale/cups_it.po
locale/cups_ja.po
locale/cups_ko.po
locale/cups_no.po
locale/cups_pl.po
locale/cups_pt.po
locale/cups_pt_BR.po
locale/cups_sv.po
locale/cups_zh.po
locale/cups_zh_TW.po
monitor/bcp.c
monitor/tbcp.c
packaging/cups.list.in
packaging/cups.spec.in
scheduler/Makefile
scheduler/auth.c
scheduler/auth.h
scheduler/client.c
scheduler/client.h
scheduler/conf.c
scheduler/cups-driverd.c
scheduler/cups-lpd.c
scheduler/cupsfilter.c
scheduler/ipp.c
scheduler/job.c
scheduler/listen.c
scheduler/main.c
scheduler/process.c
scheduler/quotas.c
scheduler/testlpd.c
systemv/cupstestppd.c
templates/de/admin.tmpl
templates/es/admin.tmpl
templates/es/classes.tmpl
templates/es/printer-configured.tmpl
templates/es/printers.tmpl
templates/es/samba-export.tmpl
templates/es/trailer.tmpl

index 68404a28a9137171466d8c154ea9e52262d73870..a2ff9458be78103dbfc30e985d90eb2abae8f0d4 100644 (file)
@@ -1,6 +1,55 @@
-CHANGES.txt - 2007-08-13
+CHANGES.txt - 2007-09-13
 ------------------------
 
 ------------------------
 
+CHANGES IN CUPS V1.3.1
+
+       - Documentation updates.
+       - The USB backend on Mac OS X could hang if the driver and
+         printer did not match.
+       - Delegated Kerberos credentials were not working.
+       - "make distclean" incorrectly removed the edit-config.tmpl
+         files (STR #2508)
+       - Fix compile problem on HP-UX (STR #2501)
+       - The cupstestppd utility now tests for resolutions greater
+         than 99999 DPI to detect a missing  "x" between the X and Y
+         resolutions.
+       - Fixed many problems in the various translations and added
+         a new "checkpo" utility to validate them.
+       - The cupstestppd utility now tests the custom page size code
+         for CUPS raster drivers.
+       - cupsLangDefault() did not attempt to return a language that
+         was supported by the calling application.
+       - If a remote printer stopped while a job was being sent, the
+         local queue would also get stopped and the job re-queued,
+         resulting in duplicate prints in some cases.
+       - A few Apple-specific job options needed to be omitted when
+         printing a banner page.
+       - The new peer credential support did not compile on FreeBSD
+         (STR #2495)
+       - Direct links to help files did not set the current section
+         so the table-of-contents was not shown.
+       - The configure script did not support --localedir=foo (STR #2488)
+       - The backends were not displaying their localized messages.
+       - CUPS-Authenticate-Job did not require Kerberos authentication
+         on queues protected by Kerberos.
+       - The Zebra ZPL driver did not work with Brady label printers
+         (STR #2487)
+       - Norwegian wasn't localized on Mac OS X.
+       - getnameinfo() returns an error on some systems when DNS is
+         not available, leading to numerous problems (STR #2486)
+       - The cupsfilter command did not work properly on Mac OS X.
+       - The scheduler makefile contained a typo (STR #2483)
+       - The TBCP and BCP port monitors did not handle the trailing
+         CTRL-D in some PostScript output properly.
+       - Fixed the localization instructions and German template for
+         the "Find New Printers" button (STR #2478)
+       - The web interface did not work with the Chinese localization
+         (STR #2477)
+       - The web interface home page did not work for languages that
+         were only partially localized (STR #2472)
+       - Updated the Spanish web interface localization (STR #2473)
+       - ppdLocalize() did not work for country-specific localizations.
+
 
 CHANGES IN CUPS V1.3.0
 
 
 CHANGES IN CUPS V1.3.0
 
index 9cbf832edb7f6f8c998c38cb19cc61d03ec88f8d..ffaa9f3aad33d7ad94e7b65441a5e818d9aa536d 100644 (file)
@@ -1,4 +1,4 @@
-CREDITS.txt - 2007-02-05
+CREDITS.txt - 2007-09-10
 ------------------------
 
 Few projects are completed by one person, and CUPS is no exception.  We'd
 ------------------------
 
 Few projects are completed by one person, and CUPS is no exception.  We'd
@@ -19,6 +19,7 @@ like to thank the following individuals for their contributions:
     Till Kamppeter                 - Bug fixes, beta testing, evangelism.
     Kenshi Muto                    - Japanese localization, patches, and
                                      testing.
     Till Kamppeter                 - Bug fixes, beta testing, evangelism.
     Kenshi Muto                    - Japanese localization, patches, and
                                      testing.
+    Tomohiro Kato                  - Japanese localization.
     Kiko                           - Bug fixes.
     Sergey V. Kovalyov             - ESP Print Pro and CUPS beta tester.
     Marek Laane                    - Estonian translation.
     Kiko                           - Bug fixes.
     Sergey V. Kovalyov             - ESP Print Pro and CUPS beta tester.
     Marek Laane                    - Estonian translation.
@@ -36,7 +37,7 @@ like to thank the following individuals for their contributions:
     Opher Shachar                  - Hebrew localization.
     Stuart Stevens                 - HP JetDirect IPP information.
     Andrea Suatoni                 - IRIX desktop integration and testing.
     Opher Shachar                  - Hebrew localization.
     Stuart Stevens                 - HP JetDirect IPP information.
     Andrea Suatoni                 - IRIX desktop integration and testing.
-    Tomohiro Kato                  - Japanese localization.
+    Teppo Turlianen                - Finnish localization.
     Tim Waugh                      - Lots of patches, testing, and Linux
                                      integration.
     Yugami                         - LDAP browsing support.
     Tim Waugh                      - Lots of patches, testing, and Linux
                                      integration.
     Yugami                         - LDAP browsing support.
index 5732830f39d8ad67cef918a6f48e0e8a9e34e8fb..24b3c39672205612cbaa70559fd29eef1e1ffc53 100644 (file)
@@ -1,4 +1,4 @@
-INSTALL - CUPS v1.3.0 - 2007-08-13
+INSTALL - CUPS v1.3.1 - 2007-09-14
 ----------------------------------
 
 This file describes how to compile and install CUPS from source
 ----------------------------------
 
 This file describes how to compile and install CUPS from source
index 86d47a42944273ab7315a941b8ff43b192fee440..62cee85c0557852b99923c495e1c1483f0d310f3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 6945 2007-09-12 17:08:32Z mike $"
 #
 #   Top-level Makefile for the Common UNIX Printing System (CUPS).
 #
 #
 #   Top-level Makefile for the Common UNIX Printing System (CUPS).
 #
@@ -63,9 +63,8 @@ distclean:    clean
        $(RM) man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
        $(RM) man/cupsd.conf.man man/lpoptions.man
        $(RM) packaging/cups.list
        $(RM) man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
        $(RM) man/cupsd.conf.man man/lpoptions.man
        $(RM) packaging/cups.list
-       $(RM) templates/edit-config.tmpl templates/header.tmpl
+       $(RM) templates/header.tmpl
        -$(RM) doc/*/index.html
        -$(RM) doc/*/index.html
-       -$(RM) templates/*/edit-config.tmpl
        -$(RM) templates/*/header.tmpl
        -$(RM) -r autom4te*.cache
 
        -$(RM) templates/*/header.tmpl
        -$(RM) -r autom4te*.cache
 
@@ -282,5 +281,5 @@ dist:       all
 
 
 #
 
 
 #
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 6945 2007-09-12 17:08:32Z mike $".
 #
 #
index 48fee5a99a5afe9a2e7c26fb8cda7b6f7cde199c..582250f03447a5923f028400c8f8c134f05d4acf 100644 (file)
@@ -1,4 +1,4 @@
-README - CUPS v1.3.0 - 2007-08-13
+README - CUPS v1.3.1 - 2007-09-14
 ---------------------------------
 
 Looking for compile instructions?  Read the file "INSTALL.txt"
 ---------------------------------
 
 Looking for compile instructions?  Read the file "INSTALL.txt"
index d6e9aee77d52960ca3aa5dbc9221e17e2d4a9d45..e02c2753877429b7b2c05121ca65416bcc4355b4 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 6778 2007-08-08 19:27:51Z mike $"
 #
 #   Backend makefile for the Common UNIX Printing System (CUPS).
 #
 #
 #   Backend makefile for the Common UNIX Printing System (CUPS).
 #
@@ -219,5 +219,5 @@ include Dependencies
 
 
 #
 
 
 #
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 6778 2007-08-08 19:27:51Z mike $".
 #
 #
index ed82f4d33d916b73fe9540340a6d655c2f4814eb..693a85bc8dc761c677c59e1de46b102b1c485867 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: ipp.c 6687 2007-07-18 19:49:45Z mike $"
+ * "$Id: ipp.c 6911 2007-09-04 20:35:08Z mike $"
  *
  *   IPP backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   IPP backend for the Common UNIX Printing System (CUPS).
  *
@@ -67,12 +67,12 @@ static void cancel_job(http_t *http, const char *uri, int id,
                           const char *resource, const char *user, int version);
 static void    check_printer_state(http_t *http, const char *uri,
                                    const char *resource, const char *user,
                           const char *resource, const char *user, int version);
 static void    check_printer_state(http_t *http, const char *uri,
                                    const char *resource, const char *user,
-                                   int version);
+                                   int version, int job_id);
 #ifdef HAVE_LIBZ
 static void    compress_files(int num_files, char **files);
 #endif /* HAVE_LIBZ */
 static const char *password_cb(const char *);
 #ifdef HAVE_LIBZ
 static void    compress_files(int num_files, char **files);
 #endif /* HAVE_LIBZ */
 static const char *password_cb(const char *);
-static int     report_printer_state(ipp_t *ipp);
+static int     report_printer_state(ipp_t *ipp, int job_id);
 
 #ifdef __APPLE__
 static int     run_pictwps_filter(char **argv, const char *filename);
 
 #ifdef __APPLE__
 static int     run_pictwps_filter(char **argv, const char *filename);
@@ -102,9 +102,9 @@ main(int  argc,                             /* I - Number of command-line args */
                resource[1024],         /* Resource info (printer name) */
                addrname[256],          /* Address name */
                *optptr,                /* Pointer to URI options */
                resource[1024],         /* Resource info (printer name) */
                addrname[256],          /* Address name */
                *optptr,                /* Pointer to URI options */
-               name[255],              /* Name of option */
-               value[255],             /* Value of option */
-               *ptr;                   /* Pointer into name or value */
+               *name,                  /* Name of option */
+               *value,                 /* Value of option */
+               sep;                    /* Separator character */
   int          num_files;              /* Number of files to print */
   char         **files,                /* Files to print */
                *filename;              /* Pointer to single filename */
   int          num_files;              /* Number of files to print */
   char         **files,                /* Files to print */
                *filename;              /* Pointer to single filename */
@@ -199,8 +199,9 @@ main(int  argc,                             /* I - Number of command-line args */
   }
   else if (argc < 6)
   {
   }
   else if (argc < 6)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-            argv[0]);
+    _cupsLangPrintf(stderr,
+                    _("Usage: %s job-id user title copies options [file]\n"),
+                   argv[0]);
     return (CUPS_BACKEND_STOP);
   }
 
     return (CUPS_BACKEND_STOP);
   }
 
@@ -224,8 +225,9 @@ main(int  argc,                             /* I - Number of command-line args */
                      hostname, sizeof(hostname), &port,
                      resource, sizeof(resource)) < HTTP_URI_OK)
   {
                      hostname, sizeof(hostname), &port,
                      resource, sizeof(resource)) < HTTP_URI_OK)
   {
-    fputs(_("ERROR: Missing device URI on command-line and no "
-           "DEVICE_URI environment variable!\n"), stderr);
+    _cupsLangPuts(stderr,
+                  _("ERROR: Missing device URI on command-line and no "
+                   "DEVICE_URI environment variable!\n"));
     return (CUPS_BACKEND_STOP);
   }
 
     return (CUPS_BACKEND_STOP);
   }
 
@@ -263,29 +265,30 @@ main(int  argc,                           /* I - Number of command-line args */
       * Get the name...
       */
 
       * Get the name...
       */
 
-      for (ptr = name; *optptr && *optptr != '=';)
-        if (ptr < (name + sizeof(name) - 1))
-          *ptr++ = *optptr++;
-      *ptr = '\0';
+      name = optptr;
 
 
-      if (*optptr == '=')
+      while (*optptr && *optptr != '=' && *optptr != '+' && *optptr != '&')
+        optptr ++;
+
+      if ((sep = *optptr) != '\0')
+        *optptr++ = '\0';
+
+      if (sep == '=')
       {
        /*
         * Get the value...
        */
 
       {
        /*
         * Get the value...
        */
 
-        optptr ++;
-
-       for (ptr = value; *optptr && *optptr != '+' && *optptr != '&';)
-          if (ptr < (value + sizeof(value) - 1))
-            *ptr++ = *optptr++;
-       *ptr = '\0';
+        value = optptr;
 
 
-       if (*optptr == '+' || *optptr == '&')
+       while (*optptr && *optptr != '+' && *optptr != '&')
          optptr ++;
          optptr ++;
+
+        if (*optptr)
+         *optptr++ = '\0';
       }
       else
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * Process the option...
 
      /*
       * Process the option...
@@ -327,7 +330,7 @@ main(int  argc,                             /* I - Number of command-line args */
          cupsSetEncryption(HTTP_ENCRYPT_IF_REQUESTED);
        else
        {
          cupsSetEncryption(HTTP_ENCRYPT_IF_REQUESTED);
        else
        {
-         fprintf(stderr,
+         _cupsLangPrintf(stderr,
                          _("ERROR: Unknown encryption option value \"%s\"!\n"),
                          value);
         }
                          _("ERROR: Unknown encryption option value \"%s\"!\n"),
                          value);
         }
@@ -340,7 +343,7 @@ main(int  argc,                             /* I - Number of command-line args */
          version = 1;
        else
        {
          version = 1;
        else
        {
-         fprintf(stderr,
+         _cupsLangPrintf(stderr,
                          _("ERROR: Unknown version option value \"%s\"!\n"),
                          value);
        }
                          _("ERROR: Unknown version option value \"%s\"!\n"),
                          value);
        }
@@ -369,8 +372,9 @@ main(int  argc,                             /* I - Number of command-line args */
         * Unknown option...
        */
 
         * Unknown option...
        */
 
-       fprintf(stderr, _("ERROR: Unknown option \"%s\" with value \"%s\"!\n"),
-               name, value);
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Unknown option \"%s\" with value \"%s\"!\n"),
+                       name, value);
       }
     }
   }
       }
     }
   }
@@ -470,7 +474,9 @@ main(int  argc,                             /* I - Number of command-line args */
     * Try loading authentication information from the environment.
     */
 
     * Try loading authentication information from the environment.
     */
 
-    if ((ptr = getenv("AUTH_USERNAME")) != NULL)
+    const char *ptr = getenv("AUTH_USERNAME");
+
+    if (ptr)
       cupsSetUser(ptr);
 
     password = getenv("AUTH_PASSWORD");
       cupsSetUser(ptr);
 
     password = getenv("AUTH_PASSWORD");
@@ -488,8 +494,8 @@ main(int  argc,                             /* I - Number of command-line args */
 
   do
   {
 
   do
   {
-    fprintf(stderr, _("INFO: Connecting to %s on port %d...\n"),
-            hostname, port);
+    _cupsLangPrintf(stderr, _("INFO: Connecting to %s on port %d...\n"),
+                   hostname, port);
 
     if ((http = httpConnectEncrypt(hostname, port, cupsEncryption())) == NULL)
     {
 
     if ((http = httpConnectEncrypt(hostname, port, cupsEncryption())) == NULL)
     {
@@ -505,8 +511,9 @@ main(int  argc,                             /* I - Number of command-line args */
        * available printer in the class.
        */
 
        * available printer in the class.
        */
 
-        fputs(_("INFO: Unable to contact printer, queuing on next "
-               "printer in class...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Unable to contact printer, queuing on next "
+                       "printer in class...\n"));
 
         if (argc == 6 || strcmp(filename, argv[6]))
          unlink(filename);
 
         if (argc == 6 || strcmp(filename, argv[6]))
          unlink(filename);
@@ -525,16 +532,16 @@ main(int  argc,                           /* I - Number of command-line args */
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
-         fputs(_("ERROR: Printer not responding!\n"), stderr);
+         _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
-       fprintf(stderr,
-               _("WARNING: recoverable: Network host \'%s\' is busy; will "
-                 "retry in %d seconds...\n"),
-               hostname, delay);
+       _cupsLangPrintf(stderr,
+                       _("WARNING: recoverable: Network host \'%s\' is busy; "
+                         "will retry in %d seconds...\n"),
+                       hostname, delay);
 
        sleep(delay);
 
 
        sleep(delay);
 
@@ -543,8 +550,8 @@ main(int  argc,                             /* I - Number of command-line args */
       }
       else if (h_errno)
       {
       }
       else if (h_errno)
       {
-       fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
-               hostname);
+       _cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
+                       hostname);
        return (CUPS_BACKEND_STOP);
       }
       else
        return (CUPS_BACKEND_STOP);
       }
       else
@@ -552,8 +559,9 @@ main(int  argc,                             /* I - Number of command-line args */
         recoverable = 1;
 
         fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
         recoverable = 1;
 
         fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
-       fputs(_("ERROR: recoverable: Unable to connect to printer; will "
-               "retry in 30 seconds...\n"), stderr);
+       _cupsLangPuts(stderr,
+                     _("ERROR: recoverable: Unable to connect to printer; will "
+                       "retry in 30 seconds...\n"));
        sleep(30);
       }
 
        sleep(30);
       }
 
@@ -572,7 +580,7 @@ main(int  argc,                             /* I - Number of command-line args */
   }
 
   fputs("STATE: -connecting-to-device\n", stderr);
   }
 
   fputs("STATE: -connecting-to-device\n", stderr);
-  fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
+  _cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
 
 #ifdef AF_INET6
   if (http->hostaddr->addr.sa_family == AF_INET6)
 
 #ifdef AF_INET6
   if (http->hostaddr->addr.sa_family == AF_INET6)
@@ -638,18 +646,18 @@ main(int  argc,                           /* I - Number of command-line args */
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
-         fputs(_("ERROR: Printer not responding!\n"), stderr);
+         _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
-       fprintf(stderr,
-               _("WARNING: recoverable: Network host \'%s\' is busy; will "
-                 "retry in %d seconds...\n"),
-               hostname, delay);
+       _cupsLangPrintf(stderr,
+                       _("WARNING: recoverable: Network host \'%s\' is busy; "
+                         "will retry in %d seconds...\n"),
+                       hostname, delay);
 
 
-        report_printer_state(supported);
+        report_printer_state(supported, 0);
 
        sleep(delay);
 
 
        sleep(delay);
 
@@ -663,14 +671,15 @@ main(int  argc,                           /* I - Number of command-line args */
        * Switch to IPP/1.0...
        */
 
        * Switch to IPP/1.0...
        */
 
-       fputs(_("INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"),
-             stderr);
+       _cupsLangPuts(stderr,
+                     _("INFO: Printer does not support IPP/1.1, trying "
+                       "IPP/1.0...\n"));
        version = 0;
        httpReconnect(http);
       }
       else if (ipp_status == IPP_NOT_FOUND)
       {
        version = 0;
        httpReconnect(http);
       }
       else if (ipp_status == IPP_NOT_FOUND)
       {
-        fputs(_("ERROR: Destination printer does not exist!\n"), stderr);
+        _cupsLangPuts(stderr, _("ERROR: Destination printer does not exist!\n"));
 
        if (supported)
           ippDelete(supported);
 
        if (supported)
           ippDelete(supported);
@@ -679,8 +688,9 @@ main(int  argc,                             /* I - Number of command-line args */
       }
       else
       {
       }
       else
       {
-       fprintf(stderr, _("ERROR: Unable to get printer status (%s)!\n"),
-               cupsLastErrorString());
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Unable to get printer status (%s)!\n"),
+                       cupsLastErrorString());
         sleep(10);
       }
 
         sleep(10);
       }
 
@@ -713,7 +723,7 @@ main(int  argc,                             /* I - Number of command-line args */
                format_sup->values[i].string.text);
     }
 
                format_sup->values[i].string.text);
     }
 
-    report_printer_state(supported);
+    report_printer_state(supported, 0);
   }
   while (ipp_status > IPP_OK_CONFLICT);
 
   }
   while (ipp_status > IPP_OK_CONFLICT);
 
@@ -742,8 +752,9 @@ main(int  argc,                             /* I - Number of command-line args */
       * available printer in the class.
       */
 
       * available printer in the class.
       */
 
-      fputs(_("INFO: Unable to contact printer, queuing on next "
-             "printer in class...\n"), stderr);
+      _cupsLangPuts(stderr,
+                    _("INFO: Unable to contact printer, queuing on next "
+                     "printer in class...\n"));
 
       ippDelete(supported);
       httpClose(http);
 
       ippDelete(supported);
       httpClose(http);
@@ -944,7 +955,8 @@ main(int  argc,                             /* I - Number of command-line args */
       if (ipp_status == IPP_SERVICE_UNAVAILABLE ||
          ipp_status == IPP_PRINTER_BUSY)
       {
       if (ipp_status == IPP_SERVICE_UNAVAILABLE ||
          ipp_status == IPP_PRINTER_BUSY)
       {
-        fputs(_("INFO: Printer busy; will retry in 10 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 10 seconds...\n"));
        sleep(10);
       }
       else if ((ipp_status == IPP_BAD_REQUEST ||
        sleep(10);
       }
       else if ((ipp_status == IPP_BAD_REQUEST ||
@@ -954,25 +966,28 @@ main(int  argc,                           /* I - Number of command-line args */
        * Switch to IPP/1.0...
        */
 
        * Switch to IPP/1.0...
        */
 
-       fputs(_("INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"),
-             stderr);
+       _cupsLangPuts(stderr,
+                     _("INFO: Printer does not support IPP/1.1, trying "
+                       "IPP/1.0...\n"));
        version = 0;
        httpReconnect(http);
       }
       else
        version = 0;
        httpReconnect(http);
       }
       else
-        fprintf(stderr, _("ERROR: Print file was not accepted (%s)!\n"),
-               cupsLastErrorString());
+        _cupsLangPrintf(stderr, _("ERROR: Print file was not accepted (%s)!\n"),
+                       cupsLastErrorString());
     }
     else if ((job_id_attr = ippFindAttribute(response, "job-id",
                                              IPP_TAG_INTEGER)) == NULL)
     {
     }
     else if ((job_id_attr = ippFindAttribute(response, "job-id",
                                              IPP_TAG_INTEGER)) == NULL)
     {
-      fputs(_("NOTICE: Print file accepted - job ID unknown.\n"), stderr);
+      _cupsLangPuts(stderr,
+                    _("NOTICE: Print file accepted - job ID unknown.\n"));
       job_id = 0;
     }
     else
     {
       job_id = job_id_attr->values[0].integer;
       job_id = 0;
     }
     else
     {
       job_id = job_id_attr->values[0].integer;
-      fprintf(stderr, _("NOTICE: Print file accepted - job ID %d.\n"), job_id);
+      _cupsLangPrintf(stderr, _("NOTICE: Print file accepted - job ID %d.\n"),
+                      job_id);
     }
 
     ippDelete(response);
     }
 
     ippDelete(response);
@@ -1010,8 +1025,9 @@ main(int  argc,                           /* I - Number of command-line args */
        {
          ipp_status = cupsLastError();
 
        {
          ipp_status = cupsLastError();
 
-         fprintf(stderr, _("ERROR: Unable to add file %d to job: %s\n"),
-                 job_id, cupsLastErrorString());
+         _cupsLangPrintf(stderr,
+                         _("ERROR: Unable to add file %d to job: %s\n"),
+                         job_id, cupsLastErrorString());
          break;
        }
       }
          break;
        }
       }
@@ -1035,7 +1051,7 @@ main(int  argc,                           /* I - Number of command-line args */
     if (!job_id || !waitjob)
       continue;
 
     if (!job_id || !waitjob)
       continue;
 
-    fputs(_("INFO: Waiting for job to complete...\n"), stderr);
+    _cupsLangPuts(stderr, _("INFO: Waiting for job to complete...\n"));
 
     for (; !job_cancelled;)
     {
 
     for (; !job_cancelled;)
     {
@@ -1089,8 +1105,9 @@ main(int  argc,                           /* I - Number of command-line args */
        {
          ippDelete(response);
 
        {
          ippDelete(response);
 
-          fprintf(stderr, _("ERROR: Unable to get job %d attributes (%s)!\n"),
-                 job_id, cupsLastErrorString());
+          _cupsLangPrintf(stderr,
+                         _("ERROR: Unable to get job %d attributes (%s)!\n"),
+                         job_id, cupsLastErrorString());
           break;
        }
       }
           break;
        }
       }
@@ -1124,7 +1141,7 @@ main(int  argc,                           /* I - Number of command-line args */
       * Check the printer state and report it if necessary...
       */
 
       * Check the printer state and report it if necessary...
       */
 
-      check_printer_state(http, uri, resource, argv[2], version);
+      check_printer_state(http, uri, resource, argv[2], version, job_id);
 
      /*
       * Wait 10 seconds before polling again...
 
      /*
       * Wait 10 seconds before polling again...
@@ -1145,7 +1162,7 @@ main(int  argc,                           /* I - Number of command-line args */
   * Check the printer state and report it if necessary...
   */
 
   * Check the printer state and report it if necessary...
   */
 
-  check_printer_state(http, uri, resource, argv[2], version);
+  check_printer_state(http, uri, resource, argv[2], version, job_id);
 
  /*
   * Free memory...
 
  /*
   * Free memory...
@@ -1211,7 +1228,7 @@ cancel_job(http_t     *http,              /* I - HTTP connection */
   ipp_t        *request;                       /* Cancel-Job request */
 
 
   ipp_t        *request;                       /* Cancel-Job request */
 
 
-  fputs(_("INFO: Canceling print job...\n"), stderr);
+  _cupsLangPuts(stderr, _("INFO: Canceling print job...\n"));
 
   request = ippNewRequest(IPP_CANCEL_JOB);
   request->request.op.version[1] = version;
 
   request = ippNewRequest(IPP_CANCEL_JOB);
   request->request.op.version[1] = version;
@@ -1231,8 +1248,8 @@ cancel_job(http_t     *http,              /* I - HTTP connection */
   ippDelete(cupsDoRequest(http, request, resource));
 
   if (cupsLastError() > IPP_OK_CONFLICT)
   ippDelete(cupsDoRequest(http, request, resource));
 
   if (cupsLastError() > IPP_OK_CONFLICT)
-    fprintf(stderr, _("ERROR: Unable to cancel job %d: %s\n"), id,
-            cupsLastErrorString());
+    _cupsLangPrintf(stderr, _("ERROR: Unable to cancel job %d: %s\n"), id,
+                   cupsLastErrorString());
 }
 
 
 }
 
 
@@ -1246,7 +1263,8 @@ check_printer_state(
     const char  *uri,                  /* I - Printer URI */
     const char  *resource,             /* I - Resource path */
     const char  *user,                 /* I - Username, if any */
     const char  *uri,                  /* I - Printer URI */
     const char  *resource,             /* I - Resource path */
     const char  *user,                 /* I - Username, if any */
-    int         version)               /* I - IPP version */
+    int         version,               /* I - IPP version */
+    int         job_id)                        /* I - Current job ID */
 {
   ipp_t        *request,                       /* IPP request */
        *response;                      /* IPP response */
 {
   ipp_t        *request,                       /* IPP request */
        *response;                      /* IPP response */
@@ -1281,7 +1299,7 @@ check_printer_state(
 
   if ((response = cupsDoRequest(http, request, resource)) != NULL)
   {
 
   if ((response = cupsDoRequest(http, request, resource)) != NULL)
   {
-    report_printer_state(response);
+    report_printer_state(response, job_id);
     ippDelete(response);
   }
 }
     ippDelete(response);
   }
 }
@@ -1312,25 +1330,25 @@ compress_files(int  num_files,          /* I - Number of files */
   {
     if ((fd = cupsTempFd(filename, sizeof(filename))) < 0)
     {
   {
     if ((fd = cupsTempFd(filename, sizeof(filename))) < 0)
     {
-      fprintf(stderr,
-              _("ERROR: Unable to create temporary compressed print file: "
-               "%s\n"),
-             strerror(errno));
+      _cupsLangPrintf(stderr,
+                     _("ERROR: Unable to create temporary compressed print "
+                       "file: %s\n"), strerror(errno));
       exit(CUPS_BACKEND_FAILED);
     }
 
     if ((out = cupsFileOpenFd(fd, "w9")) == NULL)
     {
       exit(CUPS_BACKEND_FAILED);
     }
 
     if ((out = cupsFileOpenFd(fd, "w9")) == NULL)
     {
-      fprintf(stderr,
-              _("ERROR: Unable to open temporary compressed print file: %s\n"),
-             strerror(errno));
+      _cupsLangPrintf(stderr,
+                     _("ERROR: Unable to open temporary compressed print "
+                       "file: %s\n"), strerror(errno));
       exit(CUPS_BACKEND_FAILED);
     }
 
     if ((in = cupsFileOpen(files[i], "r")) == NULL)
     {
       exit(CUPS_BACKEND_FAILED);
     }
 
     if ((in = cupsFileOpen(files[i], "r")) == NULL)
     {
-      fprintf(stderr, _("ERROR: Unable to open print file \"%s\": %s\n"),
-              files[i], strerror(errno));
+      _cupsLangPrintf(stderr,
+                      _("ERROR: Unable to open print file \"%s\": %s\n"),
+                     files[i], strerror(errno));
       cupsFileClose(out);
       exit(CUPS_BACKEND_FAILED);
     }
       cupsFileClose(out);
       exit(CUPS_BACKEND_FAILED);
     }
@@ -1339,8 +1357,9 @@ compress_files(int  num_files,            /* I - Number of files */
     while ((bytes = cupsFileRead(in, buffer, sizeof(buffer))) > 0)
       if (cupsFileWrite(out, buffer, bytes) < bytes)
       {
     while ((bytes = cupsFileRead(in, buffer, sizeof(buffer))) > 0)
       if (cupsFileWrite(out, buffer, bytes) < bytes)
       {
-        fprintf(stderr, _("ERROR: Unable to write %d bytes to \"%s\": %s\n"),
-               (int)bytes, filename, strerror(errno));
+        _cupsLangPrintf(stderr,
+                       _("ERROR: Unable to write %d bytes to \"%s\": %s\n"),
+                       (int)bytes, filename, strerror(errno));
         cupsFileClose(in);
         cupsFileClose(out);
        exit(CUPS_BACKEND_FAILED);
         cupsFileClose(in);
         cupsFileClose(out);
        exit(CUPS_BACKEND_FAILED);
@@ -1408,7 +1427,8 @@ password_cb(const char *prompt)           /* I - Prompt (not used) */
  */
 
 static int                             /* O - Number of reasons shown */
  */
 
 static int                             /* O - Number of reasons shown */
-report_printer_state(ipp_t *ipp)       /* I - IPP response */
+report_printer_state(ipp_t *ipp,       /* I - IPP response */
+                     int   job_id)     /* I - Current job ID */
 {
   int                  i;              /* Looping var */
   int                  count;          /* Count of reasons shown... */
 {
   int                  i;              /* Looping var */
   int                  count;          /* Count of reasons shown... */
@@ -1419,6 +1439,7 @@ report_printer_state(ipp_t *ipp)  /* I - IPP response */
   char                 unknown[1024];  /* Unknown message string */
   const char           *prefix;        /* Prefix for STATE: line */
   char                 state[1024];    /* State string */
   char                 unknown[1024];  /* Unknown message string */
   const char           *prefix;        /* Prefix for STATE: line */
   char                 state[1024];    /* State string */
+  cups_lang_t          *language;      /* Current localization */
 
 
   if ((psm = ippFindAttribute(ipp, "printer-state-message",
 
 
   if ((psm = ippFindAttribute(ipp, "printer-state-message",
@@ -1431,15 +1452,20 @@ report_printer_state(ipp_t *ipp)        /* I - IPP response */
 
   state[0] = '\0';
   prefix   = "STATE: ";
 
   state[0] = '\0';
   prefix   = "STATE: ";
+  language = cupsLangDefault();
 
   for (i = 0, count = 0; i < reasons->num_values; i ++)
   {
     reason = reasons->values[i].string.text;
 
 
   for (i = 0, count = 0; i < reasons->num_values; i ++)
   {
     reason = reasons->values[i].string.text;
 
-    strlcat(state, prefix, sizeof(state));
-    strlcat(state, reason, sizeof(state));
+    if (job_id == 0 || strcmp(reason, "paused"))
+    {
+      strlcat(state, prefix, sizeof(state));
+      strlcat(state, reason, sizeof(state));
+
+      prefix  = ",";
+    }
 
 
-    prefix  = ",";
     message = "";
 
     if (!strncmp(reason, "media-needed", 12))
     message = "";
 
     if (!strncmp(reason, "media-needed", 12))
@@ -1504,11 +1530,11 @@ report_printer_state(ipp_t *ipp)        /* I - IPP response */
     {
       count ++;
       if (strstr(reasons->values[i].string.text, "error"))
     {
       count ++;
       if (strstr(reasons->values[i].string.text, "error"))
-        fprintf(stderr, "ERROR: %s\n", message);
+        fprintf(stderr, "ERROR: %s\n", _cupsLangString(language, message));
       else if (strstr(reasons->values[i].string.text, "warning"))
       else if (strstr(reasons->values[i].string.text, "warning"))
-        fprintf(stderr, "WARNING: %s\n", message);
+        fprintf(stderr, "WARNING: %s\n", _cupsLangString(language, message));
       else
       else
-        fprintf(stderr, "INFO: %s\n", message);
+        fprintf(stderr, "INFO: %s\n", _cupsLangString(language, message));
     }
   }
 
     }
   }
 
@@ -1550,15 +1576,16 @@ run_pictwps_filter(char       **argv,   /* I - Command-line arguments */
   printer = getenv("PRINTER");
   if (!printer)
   {
   printer = getenv("PRINTER");
   if (!printer)
   {
-    fputs(_("ERROR: PRINTER environment variable not defined!\n"), stderr);
+    _cupsLangPuts(stderr,
+                  _("ERROR: PRINTER environment variable not defined!\n"));
     return (-1);
   }
 
   if ((ppdfile = cupsGetPPD(printer)) == NULL)
   {
     return (-1);
   }
 
   if ((ppdfile = cupsGetPPD(printer)) == NULL)
   {
-    fprintf(stderr,
-            _("ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"),
-            printer, cupsLastErrorString());
+    _cupsLangPrintf(stderr,
+                   _("ERROR: Unable to get PPD file for printer \"%s\" - "
+                     "%s.\n"), printer, cupsLastErrorString());
   }
   else
   {
   }
   else
   {
@@ -1572,8 +1599,8 @@ run_pictwps_filter(char       **argv,     /* I - Command-line arguments */
 
   if ((fd = cupsTempFd(pstmpname, sizeof(pstmpname))) < 0)
   {
 
   if ((fd = cupsTempFd(pstmpname, sizeof(pstmpname))) < 0)
   {
-    fprintf(stderr, _("ERROR: Unable to create temporary file - %s.\n"),
-            strerror(errno));
+    _cupsLangPrintf(stderr, _("ERROR: Unable to create temporary file - %s.\n"),
+                   strerror(errno));
     if (ppdfile)
       unlink(ppdfile);
     return (-1);
     if (ppdfile)
       unlink(ppdfile);
     return (-1);
@@ -1629,8 +1656,8 @@ run_pictwps_filter(char       **argv,     /* I - Command-line arguments */
 
     execlp("pictwpstops", printer, argv[1], argv[2], argv[3], argv[4], argv[5],
            filename, NULL);
 
     execlp("pictwpstops", printer, argv[1], argv[2], argv[3], argv[4], argv[5],
            filename, NULL);
-    fprintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
-            strerror(errno));
+    _cupsLangPrintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
+                   strerror(errno));
     return (errno);
   }
 
     return (errno);
   }
 
@@ -1642,8 +1669,8 @@ run_pictwps_filter(char       **argv,     /* I - Command-line arguments */
     * Error!
     */
 
     * Error!
     */
 
-    fprintf(stderr, _("ERROR: Unable to fork pictwpstops: %s\n"),
-            strerror(errno));
+    _cupsLangPrintf(stderr, _("ERROR: Unable to fork pictwpstops: %s\n"),
+                   strerror(errno));
     unlink(filename);
     if (ppdfile)
       unlink(ppdfile);
     unlink(filename);
     if (ppdfile)
       unlink(ppdfile);
@@ -1656,8 +1683,8 @@ run_pictwps_filter(char       **argv,     /* I - Command-line arguments */
 
   if (wait(&status) < 0)
   {
 
   if (wait(&status) < 0)
   {
-    fprintf(stderr, _("ERROR: Unable to wait for pictwpstops: %s\n"),
-            strerror(errno));
+    _cupsLangPrintf(stderr, _("ERROR: Unable to wait for pictwpstops: %s\n"),
+                   strerror(errno));
     close(fd);
     unlink(filename);
     if (ppdfile)
     close(fd);
     unlink(filename);
     if (ppdfile)
@@ -1673,11 +1700,11 @@ run_pictwps_filter(char       **argv,   /* I - Command-line arguments */
   if (status)
   {
     if (status >= 256)
   if (status)
   {
     if (status >= 256)
-      fprintf(stderr, _("ERROR: pictwpstops exited with status %d!\n"),
-              status / 256);
+      _cupsLangPrintf(stderr, _("ERROR: pictwpstops exited with status %d!\n"),
+                     status / 256);
     else
     else
-      fprintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
-              status);
+      _cupsLangPrintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
+                     status);
 
     unlink(filename);
     return (status);
 
     unlink(filename);
     return (status);
@@ -1729,5 +1756,5 @@ sigterm_handler(int sig)          /* I - Signal */
 
 
 /*
 
 
 /*
- * End of "$Id: ipp.c 6687 2007-07-18 19:49:45Z mike $".
+ * End of "$Id: ipp.c 6911 2007-09-04 20:35:08Z mike $".
  */
  */
index 10f4b5c0bf642325a37d94270c54624e7fcdd102..322eebfade0dd16755577480d2240cea8a7927e6 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: lpd.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpd.c 6911 2007-09-04 20:35:08Z mike $"
  *
  *   Line Printer Daemon backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   Line Printer Daemon backend for the Common UNIX Printing System (CUPS).
  *
@@ -125,9 +125,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
                        username[255],  /* Username info */
                        resource[1024], /* Resource info (printer name) */
                        *options,       /* Pointer to options */
                        username[255],  /* Username info */
                        resource[1024], /* Resource info (printer name) */
                        *options,       /* Pointer to options */
-                       name[255],      /* Name of option */
-                       value[255],     /* Value of option */
-                       *ptr,           /* Pointer into name or value */
+                       *name,          /* Name of option */
+                       *value,         /* Value of option */
+                       sep,            /* Separator character */
                        *filename,      /* File to print */
                        title[256];     /* Title string */
   int                  port;           /* Port number */
                        *filename,      /* File to print */
                        title[256];     /* Title string */
   int                  port;           /* Port number */
@@ -186,8 +186,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   }
   else if (argc < 6 || argc > 7)
   {
   }
   else if (argc < 6 || argc > 7)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-            argv[0]);
+    _cupsLangPrintf(stderr,
+                    _("Usage: %s job-id user title copies options [file]\n"),
+                    argv[0]);
     return (CUPS_BACKEND_FAILED);
   }
 
     return (CUPS_BACKEND_FAILED);
   }
 
@@ -276,29 +277,30 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       * Get the name...
       */
 
       * Get the name...
       */
 
-      for (ptr = name; *options && *options != '=';)
-        if (ptr < (name + sizeof(name) - 1))
-          *ptr++ = *options++;
-      *ptr = '\0';
+      name = options;
 
 
-      if (*options == '=')
+      while (*options && *options != '=' && *options != '+' && *options != '&')
+        options ++;
+
+      if ((sep = *options) != '\0')
+        *options++ = '\0';
+
+      if (sep == '=')
       {
        /*
         * Get the value...
        */
 
       {
        /*
         * Get the value...
        */
 
-        options ++;
+        value = options;
 
 
-       for (ptr = value; *options && *options != '+' && *options != '&';)
-          if (ptr < (value + sizeof(value) - 1))
-            *ptr++ = *options++;
-       *ptr = '\0';
-
-       if (*options == '+' || *options == '&')
+       while (*options && *options != '+' && *options != '&')
          options ++;
          options ++;
+
+        if (*options)
+         *options++ = '\0';
       }
       else
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * Process the option...
 
      /*
       * Process the option...
@@ -322,8 +324,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
         if (strchr("cdfglnoprtv", value[0]))
          format = value[0];
        else
         if (strchr("cdfglnoprtv", value[0]))
          format = value[0];
        else
-         fprintf(stderr, _("ERROR: Unknown format character \"%c\"\n"),
-                 value[0]);
+         _cupsLangPrintf(stderr, _("ERROR: Unknown format character \"%c\"\n"),
+                         value[0]);
       }
       else if (!strcasecmp(name, "mode") && value[0])
       {
       }
       else if (!strcasecmp(name, "mode") && value[0])
       {
@@ -336,7 +338,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        else if (!strcasecmp(value, "stream"))
          mode = MODE_STREAM;
        else
        else if (!strcasecmp(value, "stream"))
          mode = MODE_STREAM;
        else
-         fprintf(stderr, _("ERROR: Unknown print mode \"%s\"\n"), value);
+         _cupsLangPrintf(stderr, _("ERROR: Unknown print mode \"%s\"\n"),
+                         value);
       }
       else if (!strcasecmp(name, "order") && value[0])
       {
       }
       else if (!strcasecmp(name, "order") && value[0])
       {
@@ -349,7 +352,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        else if (!strcasecmp(value, "data,control"))
          order = ORDER_DATA_CONTROL;
        else
        else if (!strcasecmp(value, "data,control"))
          order = ORDER_DATA_CONTROL;
        else
-         fprintf(stderr, _("ERROR: Unknown file order \"%s\"\n"), value);
+         _cupsLangPrintf(stderr, _("ERROR: Unknown file order \"%s\"\n"),
+                         value);
       }
       else if (!strcasecmp(name, "reserve"))
       {
       }
       else if (!strcasecmp(name, "reserve"))
       {
@@ -457,8 +461,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
 
     if (fd == -1)
     {
 
     if (fd == -1)
     {
-      fprintf(stderr, _("ERROR: Unable to open print file %s: %s\n"),
-              filename, strerror(errno));
+      _cupsLangPrintf(stderr, _("ERROR: Unable to open print file %s: %s\n"),
+                      filename, strerror(errno));
       return (CUPS_BACKEND_FAILED);
     }
   }
       return (CUPS_BACKEND_FAILED);
     }
   }
@@ -476,6 +480,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
     * the remote end...
     */
 
     * the remote end...
     */
 
+    char *ptr;
+
     for (ptr = title; *ptr; ptr ++)
       if (!isalnum(*ptr & 255) && !isspace(*ptr & 255))
        *ptr = '_';
     for (ptr = title; *ptr; ptr ++)
       if (!isalnum(*ptr & 255) && !isspace(*ptr & 255))
        *ptr = '_';
@@ -585,9 +591,9 @@ lpd_command(int  fd,                /* I - Socket connection to LPD host */
 
   if (recv(fd, &status, 1, 0) < 1)
   {
 
   if (recv(fd, &status, 1, 0) < 1)
   {
-    fprintf(stderr,
-            _("WARNING: Remote host did not respond with command status "
-             "byte after %d seconds!\n"), timeout);
+    _cupsLangPrintf(stderr,
+                   _("WARNING: Remote host did not respond with command "
+                     "status byte after %d seconds!\n"), timeout);
     status = errno;
   }
 
     status = errno;
   }
 
@@ -668,7 +674,8 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
 
   if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
   {
 
   if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
   {
-    fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"), hostname);
+    _cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
+                    hostname);
     return (CUPS_BACKEND_STOP);
   }
 
     return (CUPS_BACKEND_STOP);
   }
 
@@ -690,9 +697,9 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
     */
 
     fputs("STATE: +connecting-to-device\n", stderr);
     */
 
     fputs("STATE: +connecting-to-device\n", stderr);
-    fprintf(stderr,
-            _("INFO: Attempting to connect to host %s for printer %s\n"),
-            hostname, printer);
+    _cupsLangPrintf(stderr,
+                   _("INFO: Attempting to connect to host %s for printer %s\n"),
+                   hostname, printer);
 
     for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist,
              delay = 5;;
 
     for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist,
              delay = 5;;
@@ -791,8 +798,9 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
        * available printer in the class.
        */
 
        * available printer in the class.
        */
 
-        fputs(_("INFO: Unable to contact printer, queuing on next "
-               "printer in class...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Unable to contact printer, queuing on next "
+                       "printer in class...\n"));
 
         httpAddrFreeList(addrlist);
 
 
         httpAddrFreeList(addrlist);
 
@@ -810,16 +818,15 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
-         fputs(_("ERROR: Printer not responding!\n"), stderr);
+         _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
-       fprintf(stderr,
-               _("WARNING: recoverable: Network host \'%s\' is busy; will "
-                 "retry in %d seconds...\n"),
-               hostname, delay);
+       _cupsLangPrintf(stderr,
+                       _("WARNING: recoverable: Network host \'%s\' is busy; "
+                         "will retry in %d seconds...\n"), hostname, delay);
 
        sleep(delay);
 
 
        sleep(delay);
 
@@ -839,8 +846,9 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
         recoverable = 1;
 
         fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
         recoverable = 1;
 
         fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
-       fputs(_("ERROR: recoverable: Unable to connect to printer; will "
-               "retry in 30 seconds...\n"), stderr);
+       _cupsLangPuts(stderr,
+                     _("ERROR: recoverable: Unable to connect to printer; "
+                       "will retry in 30 seconds...\n"));
        sleep(30);
       }
     }
        sleep(30);
       }
     }
@@ -858,7 +866,7 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
     }
 
     fputs("STATE: -connecting-to-device\n", stderr);
     }
 
     fputs("STATE: -connecting-to-device\n", stderr);
-    fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
+    _cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
 
 #ifdef AF_INET6
     if (addr->addr.addr.sa_family == AF_INET6)
 
 #ifdef AF_INET6
     if (addr->addr.addr.sa_family == AF_INET6)
@@ -964,8 +972,8 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
         return (CUPS_BACKEND_FAILED);
       }
 
         return (CUPS_BACKEND_FAILED);
       }
 
-      fprintf(stderr, _("INFO: Sending control file (%u bytes)\n"),
-              (unsigned)strlen(control));
+      _cupsLangPrintf(stderr, _("INFO: Sending control file (%u bytes)\n"),
+                     (unsigned)strlen(control));
 
       if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
       {
 
       if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
       {
@@ -978,9 +986,9 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
 
         if (read(fd, &status, 1) < 1)
        {
 
         if (read(fd, &status, 1) < 1)
        {
-         fprintf(stderr,
-                 _("WARNING: Remote host did not respond with control "
-                   "status byte after %d seconds!\n"), timeout);
+         _cupsLangPrintf(stderr,
+                         _("WARNING: Remote host did not respond with control "
+                           "status byte after %d seconds!\n"), timeout);
          status = errno;
        }
 
          status = errno;
        }
 
@@ -988,11 +996,11 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
       }
 
       if (status != 0)
       }
 
       if (status != 0)
-       fprintf(stderr,
-               _("ERROR: Remote host did not accept control file (%d)\n"),
-               status);
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Remote host did not accept control file "
+                         "(%d)\n"), status);
       else
       else
-       fputs(_("INFO: Control file sent successfully\n"), stderr);
+       _cupsLangPuts(stderr, _("INFO: Control file sent successfully\n"));
     }
     else
       status = 0;
     }
     else
       status = 0;
@@ -1013,13 +1021,13 @@ lpd_queue(const char *hostname,         /* I - Host to connect to */
         return (CUPS_BACKEND_FAILED);
       }
 
         return (CUPS_BACKEND_FAILED);
       }
 
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sending data file (%lld bytes)\n"),
+                     _("INFO: Sending data file (%lld bytes)\n"),
 #else
 #else
-              _("INFO: Sending data file (%ld bytes)\n"),
+                     _("INFO: Sending data file (%ld bytes)\n"),
 #endif /* HAVE_LONG_LONG */
 #endif /* HAVE_LONG_LONG */
-              CUPS_LLCAST filestats.st_size);
+                     CUPS_LLCAST filestats.st_size);
 
       tbytes = 0;
       for (copy = 0; copy < manual_copies; copy ++)
 
       tbytes = 0;
       for (copy = 0; copy < manual_copies; copy ++)
@@ -1028,8 +1036,9 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
 
        while ((nbytes = read(print_fd, buffer, sizeof(buffer))) > 0)
        {
 
        while ((nbytes = read(print_fd, buffer, sizeof(buffer))) > 0)
        {
-         fprintf(stderr, _("INFO: Spooling LPR job, %.0f%% complete...\n"),
-                 100.0 * tbytes / filestats.st_size);
+         _cupsLangPrintf(stderr,
+                         _("INFO: Spooling LPR job, %.0f%% complete...\n"),
+                         100.0 * tbytes / filestats.st_size);
 
          if (lpd_write(fd, buffer, nbytes) < nbytes)
          {
 
          if (lpd_write(fd, buffer, nbytes) < nbytes)
          {
@@ -1063,9 +1072,9 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
 
           if (recv(fd, &status, 1, 0) < 1)
          {
 
           if (recv(fd, &status, 1, 0) < 1)
          {
-           fprintf(stderr,
-                   _("WARNING: Remote host did not respond with data "
-                     "status byte after %d seconds!\n"), timeout);
+           _cupsLangPrintf(stderr,
+                           _("WARNING: Remote host did not respond with data "
+                             "status byte after %d seconds!\n"), timeout);
            status = 0;
           }
 
            status = 0;
           }
 
@@ -1076,10 +1085,11 @@ lpd_queue(const char *hostname,         /* I - Host to connect to */
         status = 0;
 
       if (status != 0)
         status = 0;
 
       if (status != 0)
-       fprintf(stderr, _("ERROR: Remote host did not accept data file (%d)\n"),
-               status);
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Remote host did not accept data file (%d)\n"),
+                       status);
       else
       else
-       fputs(_("INFO: Data file sent successfully\n"), stderr);
+       _cupsLangPuts(stderr, _("INFO: Data file sent successfully\n"));
     }
 
     if (status == 0 && order == ORDER_DATA_CONTROL)
     }
 
     if (status == 0 && order == ORDER_DATA_CONTROL)
@@ -1093,8 +1103,8 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
         return (CUPS_BACKEND_FAILED);
       }
 
         return (CUPS_BACKEND_FAILED);
       }
 
-      fprintf(stderr, _("INFO: Sending control file (%lu bytes)\n"),
-              (unsigned long)strlen(control));
+      _cupsLangPrintf(stderr, _("INFO: Sending control file (%lu bytes)\n"),
+                     (unsigned long)strlen(control));
 
       if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
       {
 
       if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
       {
@@ -1107,9 +1117,9 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
 
         if (read(fd, &status, 1) < 1)
        {
 
         if (read(fd, &status, 1) < 1)
        {
-         fprintf(stderr,
-                 _("WARNING: Remote host did not respond with control "
-                   "status byte after %d seconds!\n"), timeout);
+         _cupsLangPrintf(stderr,
+                         _("WARNING: Remote host did not respond with control "
+                           "status byte after %d seconds!\n"), timeout);
          status = errno;
        }
 
          status = errno;
        }
 
@@ -1117,11 +1127,11 @@ lpd_queue(const char *hostname,         /* I - Host to connect to */
       }
 
       if (status != 0)
       }
 
       if (status != 0)
-       fprintf(stderr,
-               _("ERROR: Remote host did not accept control file (%d)\n"),
-               status);
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Remote host did not accept control file "
+                         "(%d)\n"), status);
       else
       else
-       fputs(_("INFO: Control file sent successfully\n"), stderr);
+       _cupsLangPuts(stderr, _("INFO: Control file sent successfully\n"));
     }
 
    /*
     }
 
    /*
@@ -1305,5 +1315,5 @@ sigterm_handler(int sig)          /* I - Signal */
 
 
 /*
 
 
 /*
- * End of "$Id: lpd.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpd.c 6911 2007-09-04 20:35:08Z mike $".
  */
  */
index 79ce16058ca051cdf18d6bbb9d489a42d71cd719..7f04214fa07100a0465b2289071ec7a2641f9e1b 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
-* "$Id: pap.c 6559 2007-06-18 21:09:03Z mike $"
+* "$Id: pap.c 6911 2007-09-04 20:35:08Z mike $"
 *
 * © Copyright 2004 Apple Computer, Inc. All rights reserved.
 * 
 *
 * © Copyright 2004 Apple Computer, Inc. All rights reserved.
 * 
@@ -242,7 +242,9 @@ int main (int argc, const char * argv[])
     /* Try to open the print file... */
     if ((fp = fopen(argv[6], "rb")) == NULL)
     {
     /* Try to open the print file... */
     if ((fp = fopen(argv[6], "rb")) == NULL)
     {
-      fprintf(stderr, "ERROR: unable to open print file \"%s\": %s\n", argv[6], strerror(errno));
+      _cupsLangPrintf(stderr,
+                      _("ERROR: Unable to open print file \"%s\": %s\n"),
+                     argv[6], strerror(errno));
       return (1);
     }
 
       return (1);
     }
 
@@ -1363,9 +1365,9 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
         *resourcePtr,
         *typePtr,
         *options,              /* Pointer to options */
         *resourcePtr,
         *typePtr,
         *options,              /* Pointer to options */
-        optionName[255],       /* Name of option */
-        value[255],            /* Value of option */
-        *ptr;                  /* Pointer into name or value */
+        *optionName,           /* Name of option */
+        *value,                        /* Value of option */
+        sep;                   /* Separator character */
   int   port;                  /* Port number (not used) */
   int   statusInterval;                /* */
 
   int   port;                  /* Port number (not used) */
   int   statusInterval;                /* */
 
@@ -1393,53 +1395,54 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
 
     while (*options != '\0')
     {
 
     while (*options != '\0')
     {
-      /*
+     /*
       * Get the name...
       */
       * Get the name...
       */
-      for (ptr = optionName; *options && *options != '=' && *options != '+'; )
-        *ptr++ = *options++;
 
 
-      *ptr = '\0';
-      value[0] = '\0';
+      optionName = options;
 
 
-      if (*options == '=')
-      {
-        /*
-        * Get the value...
-        */
-        
+      while (*options && *options != '=' && *options != '+' && *options != '&')
         options ++;
         options ++;
-        
-        for (ptr = value; *options && *options != '+';)
-          *ptr++ = *options++;
-
-        *ptr = '\0';
-        
-        if (*options == '+')
-          options ++;
-      }
-      else if (*options == '+')
+
+      if ((sep = *options) != '\0')
+        *options++ = '\0';
+
+      if (sep == '=')
       {
       {
-        options ++;
+       /*
+        * Get the value...
+       */
+
+        value = options;
+
+       while (*options && *options != '+' && *options != '&')
+         options ++;
+
+        if (*options)
+         *options++ = '\0';
       }
       }
+      else
+        value = (char *)"";
 
 
-      /*
+     /*
       * Process the option...
       */
       * Process the option...
       */
-      if (strcasecmp(optionName, "waiteof") == 0)
+
+      if (!strcasecmp(optionName, "waiteof"))
       {
       {
-        /*
-        * Set the banner...
+       /*
+        * Wait for the end of the print file?
         */
         */
-        if (strcasecmp(value, "on") == 0 ||
-          strcasecmp(value, "yes") == 0 ||
-          strcasecmp(value, "true") == 0)
+
+        if (!strcasecmp(value, "on") ||
+            !strcasecmp(value, "yes") ||
+            !strcasecmp(value, "true"))
         {
           gWaitEOF = true;
         }
         {
           gWaitEOF = true;
         }
-        else if (strcasecmp(value, "off") == 0 ||
-            strcasecmp(value, "no") == 0 ||
-            strcasecmp(value, "false") == 0)
+        else if (!strcasecmp(value, "off") ||
+                 !strcasecmp(value, "no") ||
+                 !strcasecmp(value, "false"))
         {
           gWaitEOF = false;
         }
         {
           gWaitEOF = false;
         }
@@ -1448,13 +1451,17 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
           fprintf(stderr, "WARNING: Boolean expected for waiteof option \"%s\"\n", value);
         }
       }
           fprintf(stderr, "WARNING: Boolean expected for waiteof option \"%s\"\n", value);
         }
       }
-      else if (strcasecmp(optionName, "status") == 0)
+      else if (!strcasecmp(optionName, "status"))
       {
       {
+       /*
+        * Set status reporting interval...
+       */
+
         statusInterval = atoi(value);
         statusInterval = atoi(value);
-        if (value[0] < '0' || value[0] > '9' || 
-          statusInterval < 0)
+        if (value[0] < '0' || value[0] > '9' || statusInterval < 0)
         {
         {
-          fprintf(stderr, "WARNING: number expected for status option \"%s\"\n", value);
+          fprintf(stderr, "WARNING: number expected for status option \"%s\"\n",
+                 value);
         }
         else
         {
         }
         else
         {
@@ -1469,20 +1476,24 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
   if (*resourcePtr == '/')
     resourcePtr++;
 
   if (*resourcePtr == '/')
     resourcePtr++;
 
-        /* If the resource has a slash we assume the slash seperates the AppleTalk object
-         * name from the AppleTalk type. If the slash is not present we assume the AppleTalk
-         * type is LaserWriter.
-         */
-        typePtr = strchr(resourcePtr, '/');
-        if (typePtr != NULL) {
-            *typePtr++ = '\0';
-        } else {
-            typePtr = "LaserWriter";
-        }
+ /* If the resource has a slash we assume the slash seperates the AppleTalk object
+  * name from the AppleTalk type. If the slash is not present we assume the AppleTalk
+  * type is LaserWriter.
+  */
+
+  typePtr = strchr(resourcePtr, '/');
+  if (typePtr != NULL)
+  {
+    *typePtr++ = '\0';
+  }
+  else
+  {
+    typePtr = "LaserWriter";
+  }
 
 
-  removePercentEscapes(hostname,    zone, NBP_NVE_STR_SIZE + 1);
-  removePercentEscapes(resourcePtr,  name, NBP_NVE_STR_SIZE + 1);
-  removePercentEscapes(typePtr,     type, NBP_NVE_STR_SIZE + 1);
+  removePercentEscapes(hostname, zone, NBP_NVE_STR_SIZE + 1);
+  removePercentEscapes(resourcePtr, name, NBP_NVE_STR_SIZE + 1);
+  removePercentEscapes(typePtr, type, NBP_NVE_STR_SIZE + 1);
 
   return 0;
 }
 
   return 0;
 }
index febedf6f914a485a27399b6e5359abceeb493555..673e6a4c6844efd8cc3befdd66e2514d2cdcec8d 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: parallel.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: parallel.c 6835 2007-08-22 18:34:34Z mike $"
  *
  *   Parallel port backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   Parallel port backend for the Common UNIX Printing System (CUPS).
  *
@@ -122,8 +122,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   }
   else if (argc < 6 || argc > 7)
   {
   }
   else if (argc < 6 || argc > 7)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-           argv[0]);
+    _cupsLangPrintf(stderr,
+                   _("Usage: %s job-id user title copies options [file]\n"),
+                   argv[0]);
     return (CUPS_BACKEND_FAILED);
   }
 
     return (CUPS_BACKEND_FAILED);
   }
 
@@ -213,8 +214,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        * available printer in the class.
        */
 
        * available printer in the class.
        */
 
-        fputs(_("INFO: Unable to contact printer, queuing on next "
-               "printer in class...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Unable to contact printer, queuing on next "
+                       "printer in class...\n"));
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -227,19 +229,22 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
 
       if (errno == EBUSY)
       {
 
       if (errno == EBUSY)
       {
-        fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 30 seconds...\n"));
        sleep(30);
       }
       else if (errno == ENXIO || errno == EIO || errno == ENOENT)
       {
        sleep(30);
       }
       else if (errno == ENXIO || errno == EIO || errno == ENOENT)
       {
-        fputs(_("INFO: Printer not connected; will retry in 30 seconds...\n"),
-             stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer not connected; will retry in 30 "
+                       "seconds...\n"));
        sleep(30);
       }
       else
       {
        sleep(30);
       }
       else
       {
-       fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
-               resource, strerror(errno));
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Unable to open device file \"%s\": %s\n"),
+                       resource, strerror(errno));
        return (CUPS_BACKEND_FAILED);
       }
     }
        return (CUPS_BACKEND_FAILED);
       }
     }
@@ -279,13 +284,13 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
     tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
 
     if (print_fd != 0 && tbytes >= 0)
     tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
 
     if (print_fd != 0 && tbytes >= 0)
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sent print file, %lld bytes...\n"),
+                     _("INFO: Sent print file, %lld bytes...\n"),
 #else
 #else
-              _("INFO: Sent print file, %ld bytes...\n"),
+                     _("INFO: Sent print file, %ld bytes...\n"),
 #endif /* HAVE_LONG_LONG */
 #endif /* HAVE_LONG_LONG */
-              CUPS_LLCAST tbytes);
+                     CUPS_LLCAST tbytes);
   }
 
  /*
   }
 
  /*
@@ -613,7 +618,7 @@ side_cb(int print_fd,                       /* I - Print file */
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
-    fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+    _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
     return;
   }
 
     return;
   }
 
@@ -662,5 +667,5 @@ side_cb(int print_fd,                       /* I - Print file */
 
 
 /*
 
 
 /*
- * End of "$Id: parallel.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: parallel.c 6835 2007-08-22 18:34:34Z mike $".
  */
  */
index a3499e95f219803846480400f357bbd9eba7a976..0cd38bb61661a1d109dd4f484bcea18c97c999f0 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: runloop.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: runloop.c 6835 2007-08-22 18:34:34Z mike $"
  *
  *   Common run loop APIs for the Common UNIX Printing System (CUPS).
  *
  *
  *   Common run loop APIs for the Common UNIX Printing System (CUPS).
  *
@@ -118,8 +118,8 @@ backendDrainOutput(int print_fd,    /* I - Print file descriptor */
         if (errno != ENOSPC && errno != ENXIO && errno != EAGAIN &&
            errno != EINTR && errno != ENOTTY)
        {
         if (errno != ENOSPC && errno != ENXIO && errno != EAGAIN &&
            errno != EINTR && errno != ENOTTY)
        {
-         fprintf(stderr, _("ERROR: Unable to write print data: %s\n"),
-                 strerror(errno));
+         _cupsLangPrintf(stderr, _("ERROR: Unable to write print data: %s\n"),
+                         strerror(errno));
          return (-1);
        }
       }
          return (-1);
        }
       }
@@ -230,7 +230,7 @@ backendRunLoop(
        if (errno == ENXIO && offline != 1)
        {
          fputs("STATE: +offline-error\n", stderr);
        if (errno == ENXIO && offline != 1)
        {
          fputs("STATE: +offline-error\n", stderr);
-         fputs(_("INFO: Printer is currently off-line.\n"), stderr);
+         _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
          offline = 1;
        }
        else if (errno == EINTR && total_bytes == 0)
          offline = 1;
        }
        else if (errno == EINTR && total_bytes == 0)
@@ -321,7 +321,7 @@ backendRunLoop(
          if (paperout != 1)
          {
            fputs("STATE: +media-empty-error\n", stderr);
          if (paperout != 1)
          {
            fputs("STATE: +media-empty-error\n", stderr);
-           fputs(_("ERROR: Out of paper!\n"), stderr);
+           _cupsLangPuts(stderr, _("ERROR: Out of paper!\n"));
            paperout = 1;
          }
         }
            paperout = 1;
          }
         }
@@ -330,7 +330,7 @@ backendRunLoop(
          if (offline != 1)
          {
            fputs("STATE: +offline-error\n", stderr);
          if (offline != 1)
          {
            fputs("STATE: +offline-error\n", stderr);
-           fputs(_("INFO: Printer is currently off-line.\n"), stderr);
+           _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
            offline = 1;
          }
        }
            offline = 1;
          }
        }
@@ -352,7 +352,7 @@ backendRunLoop(
        if (offline)
        {
          fputs("STATE: -offline-error\n", stderr);
        if (offline)
        {
          fputs("STATE: -offline-error\n", stderr);
-         fputs(_("INFO: Printer is now on-line.\n"), stderr);
+         _cupsLangPuts(stderr, _("INFO: Printer is now on-line.\n"));
          offline = 0;
        }
 
          offline = 0;
        }
 
@@ -374,5 +374,5 @@ backendRunLoop(
 
 
 /*
 
 
 /*
- * End of "$Id: runloop.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: runloop.c 6835 2007-08-22 18:34:34Z mike $".
  */
  */
index 3b3e43b0d19fbf2663503a1a10d78f6ca6c9a188..b3b267651da40bc5b17a5f2bc457c1b5c6dd0efb 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: scsi-irix.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: scsi-irix.c 6835 2007-08-22 18:34:34Z mike $"
  *
  *   IRIX SCSI printer support for the Common UNIX Printing System (CUPS).
  *
  *
  *   IRIX SCSI printer support for the Common UNIX Printing System (CUPS).
  *
@@ -96,7 +96,8 @@ print_device(const char *resource,    /* I - SCSI device */
 
   if (strncmp(resource, "/dev/scsi/", 10) != 0)
   {
 
   if (strncmp(resource, "/dev/scsi/", 10) != 0)
   {
-    fprintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"), resource);
+    _cupsLangPrintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"),
+                    resource);
     return (CUPS_BACKEND_STOP);
   }
 
     return (CUPS_BACKEND_STOP);
   }
 
@@ -119,8 +120,9 @@ print_device(const char *resource,  /* I - SCSI device */
        * available printer in the class.
        */
 
        * available printer in the class.
        */
 
-        fputs(_("INFO: Unable to contact printer, queuing on next "
-               "printer in class...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Unable to contact printer, queuing on next "
+                       "printer in class...\n"));
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -133,13 +135,15 @@ print_device(const char *resource,        /* I - SCSI device */
 
       if (errno != EAGAIN && errno != EBUSY)
       {
 
       if (errno != EAGAIN && errno != EBUSY)
       {
-       fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
-               resource, strerror(errno));
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Unable to open device file \"%s\": %s\n"),
+                       resource, strerror(errno));
        return (CUPS_BACKEND_FAILED);
       }
       else
       {
        return (CUPS_BACKEND_FAILED);
       }
       else
       {
-        fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 30 seconds...\n"));
         sleep(30);
       }
     }
         sleep(30);
       }
     }
@@ -201,9 +205,9 @@ print_device(const char *resource,  /* I - SCSI device */
        if (ioctl(scsi_fd, DS_ENTER, &scsi_req) < 0 ||
             scsi_req.ds_status != 0)
         {
        if (ioctl(scsi_fd, DS_ENTER, &scsi_req) < 0 ||
             scsi_req.ds_status != 0)
         {
-         fprintf(stderr,
-                 _("WARNING: SCSI command timed out (%d); retrying...\n"),
-                 scsi_req.ds_status);
+         _cupsLangPrintf(stderr,
+                         _("WARNING: SCSI command timed out (%d); "
+                           "retrying...\n"), scsi_req.ds_status);
           sleep(try + 1);
        }
        else
           sleep(try + 1);
        }
        else
@@ -211,8 +215,8 @@ print_device(const char *resource,  /* I - SCSI device */
 
       if (try >= 10)
       {
 
       if (try >= 10)
       {
-       fprintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
-               scsi_req.ds_status);
+       _cupsLangPrintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
+                       scsi_req.ds_status);
         close(scsi_fd);
        return (CUPS_BACKEND_FAILED);
       }
         close(scsi_fd);
        return (CUPS_BACKEND_FAILED);
       }
@@ -232,5 +236,5 @@ print_device(const char *resource,  /* I - SCSI device */
 
 
 /*
 
 
 /*
- * End of "$Id: scsi-irix.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: scsi-irix.c 6835 2007-08-22 18:34:34Z mike $".
  */
  */
index dbd1c7085d662681cfe6cf551ac098306bfda0ea..e7017e5722c3b95ce8ed3fac2f5ce04be41bd3ab 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: scsi-linux.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: scsi-linux.c 6835 2007-08-22 18:34:34Z mike $"
  *
  *   Linux SCSI printer support for the Common UNIX Printing System (CUPS).
  *
  *
  *   Linux SCSI printer support for the Common UNIX Printing System (CUPS).
  *
@@ -110,7 +110,8 @@ print_device(const char *resource,  /* I - SCSI device */
 
   if (strncmp(resource, "/dev/sg", 7) != 0)
   {
 
   if (strncmp(resource, "/dev/sg", 7) != 0)
   {
-    fprintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"), resource);
+    _cupsLangPrintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"),
+                    resource);
     return (CUPS_BACKEND_STOP);
   }
 
     return (CUPS_BACKEND_STOP);
   }
 
@@ -148,13 +149,15 @@ print_device(const char *resource,        /* I - SCSI device */
 
       if (errno != EAGAIN && errno != EBUSY)
       {
 
       if (errno != EAGAIN && errno != EBUSY)
       {
-       fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
-               resource, strerror(errno));
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Unable to open device file \"%s\": %s\n"),
+                       resource, strerror(errno));
        return (CUPS_BACKEND_FAILED);
       }
       else
       {
        return (CUPS_BACKEND_FAILED);
       }
       else
       {
-        fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 30 seconds...\n"));
         sleep(30);
       }
     }
         sleep(30);
       }
     }
@@ -220,9 +223,9 @@ print_device(const char *resource,  /* I - SCSI device */
        if (ioctl(scsi_fd, SG_IO, &scsi_req) < 0 ||
             scsi_req.status != 0)
         {
        if (ioctl(scsi_fd, SG_IO, &scsi_req) < 0 ||
             scsi_req.status != 0)
         {
-         fprintf(stderr,
-                 _("WARNING: SCSI command timed out (%d); retrying...\n"),
-                 scsi_req.status);
+         _cupsLangPrintf(stderr,
+                         _("WARNING: SCSI command timed out (%d); "
+                           "retrying...\n"), scsi_req.status);
           sleep(try + 1);
        }
        else
           sleep(try + 1);
        }
        else
@@ -230,8 +233,8 @@ print_device(const char *resource,  /* I - SCSI device */
 
       if (try >= 10)
       {
 
       if (try >= 10)
       {
-       fprintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
-               scsi_req.status);
+       _cupsLangPrintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
+                       scsi_req.status);
         close(scsi_fd);
        return (CUPS_BACKEND_FAILED);
       }
         close(scsi_fd);
        return (CUPS_BACKEND_FAILED);
       }
@@ -252,5 +255,5 @@ print_device(const char *resource,  /* I - SCSI device */
 
 
 /*
 
 
 /*
- * End of "$Id: scsi-linux.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: scsi-linux.c 6835 2007-08-22 18:34:34Z mike $".
  */
  */
index df525618b50c40796b34a2b3096b3bda7caa8874..b0867316739c0347c348ad1ea97819169b04e7e4 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: scsi.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: scsi.c 6835 2007-08-22 18:34:34Z mike $"
  *
  *   SCSI printer backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   SCSI printer backend for the Common UNIX Printing System (CUPS).
  *
@@ -153,8 +153,9 @@ main(int  argc,             /* I - Number of command-line arguments (6 or 7) */
   }
   else if (argc < 6 || argc > 7)
   {
   }
   else if (argc < 6 || argc > 7)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-           argv[0]);
+    _cupsLangPrintf(stderr,
+                    _("Usage: %s job-id user title copies options [file]\n"),
+                   argv[0]);
     return (CUPS_BACKEND_FAILED);
   }
 
     return (CUPS_BACKEND_FAILED);
   }
 
@@ -224,5 +225,5 @@ main(int  argc,             /* I - Number of command-line arguments (6 or 7) */
 
 
 /*
 
 
 /*
- * End of "$Id: scsi.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: scsi.c 6835 2007-08-22 18:34:34Z mike $".
  */
  */
index 52ee566cd13119da0b5052638512ffa919eaa026..86410014901839f2919290edf04c84fb72699e68 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: serial.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: serial.c 6911 2007-09-04 20:35:08Z mike $"
  *
  *   Serial port backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   Serial port backend for the Common UNIX Printing System (CUPS).
  *
@@ -104,9 +104,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
                username[255],          /* Username info (not used) */
                resource[1024],         /* Resource info (device and options) */
                *options,               /* Pointer to options */
                username[255],          /* Username info (not used) */
                resource[1024],         /* Resource info (device and options) */
                *options,               /* Pointer to options */
-               name[255],              /* Name of option */
-               value[255],             /* Value of option */
-               *ptr;                   /* Pointer into name or value */
+               *name,                  /* Name of option */
+               *value,                 /* Value of option */
+               sep;                    /* Option separator */
   int          port;                   /* Port number (not used) */
   int          copies;                 /* Number of copies to print */
   int          print_fd,               /* Print file */
   int          port;                   /* Port number (not used) */
   int          copies;                 /* Number of copies to print */
   int          print_fd,               /* Print file */
@@ -161,8 +161,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   }
   else if (argc < 6 || argc > 7)
   {
   }
   else if (argc < 6 || argc > 7)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-           argv[0]);
+    _cupsLangPrintf(stderr,
+                    _("Usage: %s job-id user title copies options [file]\n"),
+                   argv[0]);
     return (CUPS_BACKEND_FAILED);
   }
 
     return (CUPS_BACKEND_FAILED);
   }
 
@@ -234,8 +235,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        * available printer in the class.
        */
 
        * available printer in the class.
        */
 
-        fputs(_("INFO: Unable to contact printer, queuing on next "
-               "printer in class...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Unable to contact printer, queuing on next "
+                       "printer in class...\n"));
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -248,13 +250,15 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
 
       if (errno == EBUSY)
       {
 
       if (errno == EBUSY)
       {
-        fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 30 seconds...\n"));
        sleep(30);
       }
       else
       {
        sleep(30);
       }
       else
       {
-       fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
-               resource, strerror(errno));
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Unable to open device file \"%s\": %s\n"),
+                       resource, strerror(errno));
        return (CUPS_BACKEND_FAILED);
       }
     }
        return (CUPS_BACKEND_FAILED);
       }
     }
@@ -285,29 +289,30 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       * Get the name...
       */
 
       * Get the name...
       */
 
-      for (ptr = name; *options && *options != '=';)
-        if (ptr < (name + sizeof(name) - 1))
-          *ptr++ = *options++;
-      *ptr = '\0';
+      name = options;
 
 
-      if (*options == '=')
+      while (*options && *options != '=' && *options != '+' && *options != '&')
+        options ++;
+
+      if ((sep = *options) != '\0')
+        *options++ = '\0';
+
+      if (sep == '=')
       {
        /*
         * Get the value...
        */
 
       {
        /*
         * Get the value...
        */
 
-        options ++;
-
-       for (ptr = value; *options && *options != '+' && *options != '&';)
-          if (ptr < (value + sizeof(value) - 1))
-            *ptr++ = *options++;
-       *ptr = '\0';
+        value = options;
 
 
-       if (*options == '+' || *options == '&')
+       while (*options && *options != '+' && *options != '&')
          options ++;
          options ++;
+
+        if (*options)
+         *options++ = '\0';
       }
       else
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * Process the option...
 
      /*
       * Process the option...
@@ -370,8 +375,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
              break;
 #  endif /* B230400 */
           default :
              break;
 #  endif /* B230400 */
           default :
-             fprintf(stderr, _("WARNING: Unsupported baud rate %s!\n"),
-                     value);
+             _cupsLangPrintf(stderr, _("WARNING: Unsupported baud rate %s!\n"),
+                             value);
              break;
        }
 #endif /* B19200 == 19200 */
              break;
        }
 #endif /* B19200 == 19200 */
@@ -1247,7 +1252,8 @@ side_cb(int print_fd,                     /* I - Print file */
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
-    fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+    _cupsLangPuts(stderr,
+                  _("WARNING: Failed to read side-channel request!\n"));
     return;
   }
 
     return;
   }
 
@@ -1280,5 +1286,5 @@ side_cb(int print_fd,                     /* I - Print file */
 
 
 /*
 
 
 /*
- * End of "$Id: serial.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: serial.c 6911 2007-09-04 20:35:08Z mike $".
  */
  */
index 06790d96cb3b3271435debd7c4a53723f494fa21..6efcbf2f292efc4e384219c4c96c46a868edebe0 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: socket.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: socket.c 6911 2007-09-04 20:35:08Z mike $"
  *
  *   AppSocket backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   AppSocket backend for the Common UNIX Printing System (CUPS).
  *
@@ -68,9 +68,9 @@ main(int  argc,                               /* I - Number of command-line arguments (6 or 7) */
                username[255],          /* Username info (not used) */
                resource[1024],         /* Resource info (not used) */
                *options,               /* Pointer to options */
                username[255],          /* Username info (not used) */
                resource[1024],         /* Resource info (not used) */
                *options,               /* Pointer to options */
-               name[255],              /* Name of option */
-               value[255],             /* Value of option */
-               *ptr;                   /* Pointer into name or value */
+               *name,                  /* Name of option */
+               *value,                 /* Value of option */
+               sep;                    /* Option separator */
   int          print_fd;               /* Print file */
   int          copies;                 /* Number of copies to print */
   time_t       start_time;             /* Time of first connect */
   int          print_fd;               /* Print file */
   int          copies;                 /* Number of copies to print */
   time_t       start_time;             /* Time of first connect */
@@ -83,7 +83,7 @@ main(int  argc,                               /* I - Number of command-line arguments (6 or 7) */
   int          device_fd;              /* AppSocket */
   int          error;                  /* Error code (if any) */
   http_addrlist_t *addrlist,           /* Address list */
   int          device_fd;              /* AppSocket */
   int          error;                  /* Error code (if any) */
   http_addrlist_t *addrlist,           /* Address list */
-                 *addr;                /* Connected address */
+               *addr;                  /* Connected address */
   char         addrname[256];          /* Address name */
   ssize_t      tbytes;                 /* Total number of bytes written */
 #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
   char         addrname[256];          /* Address name */
   ssize_t      tbytes;                 /* Total number of bytes written */
 #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
@@ -122,8 +122,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   }
   else if (argc < 6 || argc > 7)
   {
   }
   else if (argc < 6 || argc > 7)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-            argv[0]);
+    _cupsLangPrintf(stderr,
+                    _("Usage: %s job-id user title copies options [file]\n"),
+                    argv[0]);
     return (CUPS_BACKEND_FAILED);
   }
 
     return (CUPS_BACKEND_FAILED);
   }
 
@@ -190,29 +191,30 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       * Get the name...
       */
 
       * Get the name...
       */
 
-      for (ptr = name; *options && *options != '=';)
-        if (ptr < (name + sizeof(name) - 1))
-          *ptr++ = *options++;
-      *ptr = '\0';
+      name = options;
 
 
-      if (*options == '=')
+      while (*options && *options != '=' && *options != '+' && *options != '&')
+        options ++;
+
+      if ((sep = *options) != '\0')
+        *options++ = '\0';
+
+      if (sep == '=')
       {
        /*
         * Get the value...
        */
 
       {
        /*
         * Get the value...
        */
 
-        options ++;
-
-       for (ptr = value; *options && *options != '+' && *options != '&';)
-          if (ptr < (value + sizeof(value) - 1))
-            *ptr++ = *options++;
-       *ptr = '\0';
+        value = options;
 
 
-       if (*options == '+' || *options == '&')
+       while (*options && *options != '+' && *options != '&')
          options ++;
          options ++;
+
+        if (*options)
+         *options++ = '\0';
       }
       else
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * Process the option...
 
      /*
       * Process the option...
@@ -250,12 +252,14 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
 
   if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
   {
 
   if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
   {
-    fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"), hostname);
+    _cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
+                    hostname);
     return (CUPS_BACKEND_STOP);
   }
 
     return (CUPS_BACKEND_STOP);
   }
 
-  fprintf(stderr, _("INFO: Attempting to connect to host %s on port %d\n"),
-          hostname, port);
+  _cupsLangPrintf(stderr,
+                  _("INFO: Attempting to connect to host %s on port %d\n"),
+                  hostname, port);
 
   fputs("STATE: +connecting-to-device\n", stderr);
 
 
   fputs("STATE: +connecting-to-device\n", stderr);
 
@@ -275,8 +279,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        * available printer in the class.
        */
 
        * available printer in the class.
        */
 
-        fputs(_("INFO: Unable to contact printer, queuing on next "
-               "printer in class...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Unable to contact printer, queuing on next "
+                       "printer in class...\n"));
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -292,16 +297,16 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
       {
         if (contimeout && (time(NULL) - start_time) > contimeout)
        {
-         fputs(_("ERROR: Printer not responding!\n"), stderr);
+         _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
          return (CUPS_BACKEND_FAILED);
        }
 
         recoverable = 1;
 
-       fprintf(stderr,
-               _("WARNING: recoverable: Network host \'%s\' is busy; will "
-                 "retry in %d seconds...\n"),
-               hostname, delay);
+       _cupsLangPrintf(stderr,
+                       _("WARNING: recoverable: Network host \'%s\' is busy; "
+                         "will retry in %d seconds...\n"),
+                       hostname, delay);
 
        sleep(delay);
 
 
        sleep(delay);
 
@@ -312,9 +317,11 @@ main(int  argc,                            /* I - Number of command-line arguments (6 or 7) */
       {
         recoverable = 1;
 
       {
         recoverable = 1;
 
-        fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
-       fputs(_("ERROR: recoverable: Unable to connect to printer; will "
-               "retry in 30 seconds...\n"), stderr);
+        _cupsLangPrintf(stderr, "DEBUG: Connection error: %s\n",
+                       strerror(errno));
+       _cupsLangPuts(stderr,
+                     _("ERROR: recoverable: Unable to connect to printer; "
+                       "will retry in 30 seconds...\n"));
        sleep(30);
       }
     }
        sleep(30);
       }
     }
@@ -335,7 +342,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   }
 
   fputs("STATE: -connecting-to-device\n", stderr);
   }
 
   fputs("STATE: -connecting-to-device\n", stderr);
-  fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
+  _cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
 
 #ifdef AF_INET6
   if (addr->addr.addr.sa_family == AF_INET6)
 
 #ifdef AF_INET6
   if (addr->addr.addr.sa_family == AF_INET6)
@@ -368,13 +375,13 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
     tbytes = backendRunLoop(print_fd, device_fd, 1, side_cb);
 
     if (print_fd != 0 && tbytes >= 0)
     tbytes = backendRunLoop(print_fd, device_fd, 1, side_cb);
 
     if (print_fd != 0 && tbytes >= 0)
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sent print file, %lld bytes...\n"),
+                     _("INFO: Sent print file, %lld bytes...\n"),
 #else
 #else
-              _("INFO: Sent print file, %ld bytes...\n"),
+                     _("INFO: Sent print file, %ld bytes...\n"),
 #endif /* HAVE_LONG_LONG */
 #endif /* HAVE_LONG_LONG */
-              CUPS_LLCAST tbytes);
+                     CUPS_LLCAST tbytes);
   }
 
  /*
   }
 
  /*
@@ -389,8 +396,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
     * Shutdown the socket and wait for the other end to finish...
     */
 
     * Shutdown the socket and wait for the other end to finish...
     */
 
-    fputs(_("INFO: Print file sent, waiting for printer to finish...\n"),
-          stderr);
+    _cupsLangPuts(stderr,
+                  _("INFO: Print file sent, waiting for printer to finish...\n"));
 
     shutdown(device_fd, 1);
 
 
     shutdown(device_fd, 1);
 
@@ -413,7 +420,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
     close(print_fd);
 
   if (tbytes >= 0)
     close(print_fd);
 
   if (tbytes >= 0)
-    fputs(_("INFO: Ready to print.\n"), stderr);
+    _cupsLangPuts(stderr, _("INFO: Ready to print.\n"));
 
   return (tbytes < 0 ? CUPS_BACKEND_FAILED : CUPS_BACKEND_OK);
 }
 
   return (tbytes < 0 ? CUPS_BACKEND_FAILED : CUPS_BACKEND_OK);
 }
@@ -439,7 +446,7 @@ side_cb(int print_fd,                       /* I - Print file */
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
-    fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+    _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
     return;
   }
 
     return;
   }
 
@@ -526,5 +533,5 @@ wait_bc(int device_fd,                      /* I - Socket */
 
 
 /*
 
 
 /*
- * End of "$Id: socket.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: socket.c 6911 2007-09-04 20:35:08Z mike $".
  */
  */
index dc628fea316d9d7dc7e8ed78af26b3f40e5de79c..efce4826db41b198fa9d5fbd0e417e24c4c53c8c 100644 (file)
@@ -1,7 +1,7 @@
 /*
 /*
-* "$Id: usb-darwin.c 6680 2007-07-16 18:46:16Z mike $"
+* "$Id: usb-darwin.c 6953 2007-09-13 22:41:21Z mike $"
 *
 *
-* Copyright © 2005-2007 Apple Inc. All rights reserved.
+* Copyright  2005-2007 Apple Inc. All rights reserved.
 *
 * IMPORTANT:  This Apple software is supplied to you by Apple Computer,
 * Inc. ("Apple") in consideration of your agreement to the following
 *
 * IMPORTANT:  This Apple software is supplied to you by Apple Computer,
 * Inc. ("Apple") in consideration of your agreement to the following
@@ -267,7 +267,7 @@ static void copy_devicestring(io_service_t usbInterface, CFStringRef *deviceID,
 static void device_added(void *userdata, io_iterator_t iterator);
 static void get_device_id(cups_sc_status_t *status, char *data, int *datalen);
 static void iterate_printers(iterator_callback_t callBack, void *userdata);
 static void device_added(void *userdata, io_iterator_t iterator);
 static void get_device_id(cups_sc_status_t *status, char *data, int *datalen);
 static void iterate_printers(iterator_callback_t callBack, void *userdata);
-static void parse_options(const char *options, char *serial, int serial_size, UInt32 *location, Boolean *wait_eof);
+static void parse_options(char *options, char *serial, int serial_size, UInt32 *location, Boolean *wait_eof);
 static void release_deviceinfo(CFStringRef *make, CFStringRef *model, CFStringRef *serial);
 static void setup_cfLanguage(void);
 static void soft_reset();
 static void release_deviceinfo(CFStringRef *make, CFStringRef *model, CFStringRef *serial);
 static void setup_cfLanguage(void);
 static void soft_reset();
@@ -304,7 +304,7 @@ int                                 /* O - Exit status */
 print_device(const char *uri,          /* I - Device URI */
              const char *hostname,     /* I - Hostname/manufacturer */
              const char *resource,     /* I - Resource/modelname */
 print_device(const char *uri,          /* I - Device URI */
              const char *hostname,     /* I - Hostname/manufacturer */
              const char *resource,     /* I - Resource/modelname */
-            const char *options,       /* I - Device options/serial number */
+            char       *options,       /* I - Device options/serial number */
             int        print_fd,       /* I - File descriptor to print */
             int        copies,         /* I - Copies to print */
             int        argc,           /* I - Number of command-line arguments (6 or 7) */
             int        print_fd,       /* I - File descriptor to print */
             int        copies,         /* I - Copies to print */
             int        argc,           /* I - Number of command-line arguments (6 or 7) */
@@ -313,7 +313,8 @@ print_device(const char *uri,               /* I - Device URI */
   char           serial[1024];         /* Serial number buffer */
   OSStatus       status;               /* Function results */
   pthread_t      read_thread_id,       /* Read thread */
   char           serial[1024];         /* Serial number buffer */
   OSStatus       status;               /* Function results */
   pthread_t      read_thread_id,       /* Read thread */
-                 sidechannel_thread_id;/* Side channel thread */
+                 sidechannel_thread_id;/* Side-channel thread */
+  int            sidechannel_started = 0;/* Was the side-channel thread started? */
   char           print_buffer[8192],   /* Print data buffer */
                  *print_ptr;           /* Pointer into print data buffer */
   UInt32         location;             /* Unique location in bus topology */
   char           print_buffer[8192],   /* Print data buffer */
                  *print_ptr;           /* Pointer into print data buffer */
   UInt32         location;             /* Unique location in bus topology */
@@ -327,6 +328,7 @@ print_device(const char *uri,               /* I - Device URI */
                  stimeout;             /* Timeout for select() */
   struct timespec cond_timeout;                /* pthread condition timeout */
 
                  stimeout;             /* Timeout for select() */
   struct timespec cond_timeout;                /* pthread condition timeout */
 
+
   setup_cfLanguage();
 
   parse_options(options, serial, sizeof(serial), &location, &g.wait_eof);
   setup_cfLanguage();
 
   parse_options(options, serial, sizeof(serial), &location, &g.wait_eof);
@@ -387,7 +389,7 @@ print_device(const char *uri,               /* I - Device URI */
         strlcpy(print_buffer, "USB class driver", sizeof(print_buffer));
 
       fputs("STATE: +apple-missing-usbclassdriver-error\n", stderr);
         strlcpy(print_buffer, "USB class driver", sizeof(print_buffer));
 
       fputs("STATE: +apple-missing-usbclassdriver-error\n", stderr);
-      fprintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
+      _cupsLangPrintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
 
       if (driverBundlePath)
        CFRelease(driverBundlePath);
 
       if (driverBundlePath)
        CFRelease(driverBundlePath);
@@ -404,7 +406,8 @@ print_device(const char *uri,               /* I - Device URI */
       countdown -= PRINTER_POLLING_INTERVAL;
       if (countdown <= 0)
       {
       countdown -= PRINTER_POLLING_INTERVAL;
       if (countdown <= 0)
       {
-       fprintf(stderr, _("INFO: Printer busy (status:0x%08x)\n"), (int)status);
+       _cupsLangPrintf(stderr, _("INFO: Printer busy (status:0x%08x)\n"),
+                       (int)status);
        countdown = SUBSEQUENT_LOG_INTERVAL;    /* subsequent log entries, every 15 seconds */
       }
     }
        countdown = SUBSEQUENT_LOG_INTERVAL;    /* subsequent log entries, every 15 seconds */
       }
     }
@@ -456,9 +459,11 @@ print_device(const char *uri,              /* I - Device URI */
 
     if (pthread_create(&sidechannel_thread_id, NULL, sidechannel_thread, NULL))
     {
 
     if (pthread_create(&sidechannel_thread_id, NULL, sidechannel_thread, NULL))
     {
-      fputs(_("WARNING: Couldn't create side channel\n"), stderr);
+      _cupsLangPuts(stderr, _("WARNING: Couldn't create side channel\n"));
       return CUPS_BACKEND_STOP;
     }
       return CUPS_BACKEND_STOP;
     }
+
+    sidechannel_started = 1;
   }
 
  /*
   }
 
  /*
@@ -473,7 +478,7 @@ print_device(const char *uri,               /* I - Device URI */
 
   if (pthread_create(&read_thread_id, NULL, read_thread, NULL))
   {
 
   if (pthread_create(&read_thread_id, NULL, read_thread, NULL))
   {
-    fputs(_("WARNING: Couldn't create read channel\n"), stderr);
+    _cupsLangPuts(stderr, _("WARNING: Couldn't create read channel\n"));
     return CUPS_BACKEND_STOP;
   }
 
     return CUPS_BACKEND_STOP;
   }
 
@@ -488,7 +493,7 @@ print_device(const char *uri,               /* I - Device URI */
 
   while (status == noErr && copies-- > 0)
   {
 
   while (status == noErr && copies-- > 0)
   {
-    fputs(_("INFO: Sending data\n"), stderr);
+    _cupsLangPuts(stderr, _("INFO: Sending data\n"));
 
     if (print_fd != STDIN_FILENO)
     {
 
     if (print_fd != STDIN_FILENO)
     {
@@ -556,7 +561,7 @@ print_device(const char *uri,               /* I - Device URI */
        }
        else if (errno != EAGAIN)
        {
        }
        else if (errno != EAGAIN)
        {
-        fprintf(stderr, _("ERROR: select() returned %d\n"), (int)errno);
+        _cupsLangPrintf(stderr, _("ERROR: select() returned %d\n"), (int)errno);
         return CUPS_BACKEND_STOP;
        }
       }
         return CUPS_BACKEND_STOP;
        }
       }
@@ -632,7 +637,8 @@ print_device(const char *uri,               /* I - Device URI */
          */
 
          OSStatus err = (*g.classdriver)->Abort(g.classdriver);
          */
 
          OSStatus err = (*g.classdriver)->Abort(g.classdriver);
-         fprintf(stderr, _("ERROR: %ld: (canceled:%ld)\n"), (long)status, (long)err);
+         _cupsLangPrintf(stderr, _("ERROR: %ld: (canceled:%ld)\n"),
+                         (long)status, (long)err);
          status = CUPS_BACKEND_STOP;
          break;
        }
          status = CUPS_BACKEND_STOP;
          break;
        }
@@ -656,27 +662,42 @@ print_device(const char *uri,             /* I - Device URI */
   * Wait for the side channel thread to exit...
   */
 
   * Wait for the side channel thread to exit...
   */
 
-  close(CUPS_SC_FD);
-  pthread_mutex_lock(&g.readwrite_lock_mutex);
-  g.readwrite_lock = 0;
-  pthread_cond_signal(&g.readwrite_lock_cond);
-  pthread_mutex_unlock(&g.readwrite_lock_mutex);
-
-  g.sidechannel_thread_stop = 1;
-  pthread_mutex_lock(&g.sidechannel_thread_mutex);
-  if (!g.sidechannel_thread_done)
+  if (sidechannel_started)
   {
   {
-    cond_timeout.tv_sec  = time(NULL) + WAIT_SIDE_DELAY;
-    cond_timeout.tv_nsec = 0;
-    pthread_cond_timedwait(&g.sidechannel_thread_cond,
-                           &g.sidechannel_thread_mutex, &cond_timeout);
-  }
-  pthread_mutex_unlock(&g.sidechannel_thread_mutex);
+    close(CUPS_SC_FD);
+    pthread_mutex_lock(&g.readwrite_lock_mutex);
+    g.readwrite_lock = 0;
+    pthread_cond_signal(&g.readwrite_lock_cond);
+    pthread_mutex_unlock(&g.readwrite_lock_mutex);
+
+    g.sidechannel_thread_stop = 1;
+    pthread_mutex_lock(&g.sidechannel_thread_mutex);
+    if (!g.sidechannel_thread_done)
+    {
+     /*
+      * Wait for the side-channel thread to exit...
+      */
 
 
-  pthread_join(sidechannel_thread_id, NULL);
+      cond_timeout.tv_sec  = time(NULL) + WAIT_SIDE_DELAY;
+      cond_timeout.tv_nsec = 0;
+      if (pthread_cond_timedwait(&g.sidechannel_thread_cond,
+                                &g.sidechannel_thread_mutex,
+                                &cond_timeout) != 0)
+      {
+       /*
+       * Force the side-channel thread to exit...
+       */
+
+       pthread_kill(sidechannel_thread_id, SIGTERM);
+      }
+    }
+    pthread_mutex_unlock(&g.sidechannel_thread_mutex);
 
 
-  pthread_cond_destroy(&g.sidechannel_thread_cond);
-  pthread_mutex_destroy(&g.sidechannel_thread_mutex);
+    pthread_join(sidechannel_thread_id, NULL);
+
+    pthread_cond_destroy(&g.sidechannel_thread_cond);
+    pthread_mutex_destroy(&g.sidechannel_thread_mutex);
+  }
 
   pthread_cond_destroy(&g.readwrite_lock_cond);
   pthread_mutex_destroy(&g.readwrite_lock_mutex);
 
   pthread_cond_destroy(&g.readwrite_lock_cond);
   pthread_mutex_destroy(&g.readwrite_lock_mutex);
@@ -689,9 +710,7 @@ print_device(const char *uri,               /* I - Device URI */
 
  /*
   * Give the read thread WAIT_EOF_DELAY seconds to complete all the data. If
 
  /*
   * Give the read thread WAIT_EOF_DELAY seconds to complete all the data. If
-  * we are not signaled in that time then force the thread to exit by setting
-  * the waiteof to be false. Plese note that this relies on us using the timeout
-  * class driver.
+  * we are not signaled in that time then force the thread to exit.
   */
 
   pthread_mutex_lock(&g.read_thread_mutex);
   */
 
   pthread_mutex_lock(&g.read_thread_mutex);
@@ -703,7 +722,13 @@ print_device(const char *uri,              /* I - Device URI */
 
     if (pthread_cond_timedwait(&g.read_thread_cond, &g.read_thread_mutex,
                                &cond_timeout) != 0)
 
     if (pthread_cond_timedwait(&g.read_thread_cond, &g.read_thread_mutex,
                                &cond_timeout) != 0)
-      g.wait_eof = false;
+    {
+     /*
+      * Force the read thread to exit...
+      */
+
+      pthread_kill(read_thread_id, SIGTERM);
+    }
   }
   pthread_mutex_unlock(&g.read_thread_mutex);
 
   }
   pthread_mutex_unlock(&g.read_thread_mutex);
 
@@ -827,8 +852,16 @@ sidechannel_thread(void *reference)
     switch (command)
     {
       case CUPS_SC_CMD_SOFT_RESET:     /* Do a soft reset */
     switch (command)
     {
       case CUPS_SC_CMD_SOFT_RESET:     /* Do a soft reset */
-         soft_reset();
-         cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, NULL, 0, 1.0);
+          if ((*g.classdriver)->SoftReset != NULL)
+         {
+           soft_reset();
+           cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, NULL, 0, 1.0);
+         }
+         else
+         {
+           cupsSideChannelWrite(command, CUPS_SC_STATUS_NOT_IMPLEMENTED,
+                                NULL, 0, 1.0);
+         }
          break;
 
       case CUPS_SC_CMD_DRAIN_OUTPUT:   /* Drain all pending output */
          break;
 
       case CUPS_SC_CMD_DRAIN_OUTPUT:   /* Drain all pending output */
@@ -1091,7 +1124,7 @@ static Boolean find_device_cb(void *refcon,
   if (!keepLooking && g.status_timer != NULL)
   {
     fputs("STATE: -offline-error\n", stderr);
   if (!keepLooking && g.status_timer != NULL)
   {
     fputs("STATE: -offline-error\n", stderr);
-    fputs(_("INFO: Printer is now on-line.\n"), stderr);
+    _cupsLangPuts(stderr, _("INFO: Printer is now on-line.\n"));
     CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), g.status_timer, kCFRunLoopDefaultMode);
     CFRelease(g.status_timer);
     g.status_timer = NULL;
     CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), g.status_timer, kCFRunLoopDefaultMode);
     CFRelease(g.status_timer);
     g.status_timer = NULL;
@@ -1109,7 +1142,7 @@ static void status_timer_cb(CFRunLoopTimerRef timer,
                            void *info)
 {
   fputs("STATE: +offline-error\n", stderr);
                            void *info)
 {
   fputs("STATE: +offline-error\n", stderr);
-  fputs(_("INFO: Printer is currently off-line.\n"), stderr);
+  _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
 }
 
 
 }
 
 
@@ -1541,18 +1574,19 @@ CFStringRef cfstr_create_trim(const char *cstr)
 
 #pragma mark -
 /*
 
 #pragma mark -
 /*
- * 'parse_options()' - Parse uri options.
+ * 'parse_options()' - Parse URI options.
  */
 
  */
 
-static void parse_options(const char *options,
+static void parse_options(char *options,
                          char *serial,
                          int serial_size,
                          UInt32 *location,
                          Boolean *wait_eof)
 {
                          char *serial,
                          int serial_size,
                          UInt32 *location,
                          Boolean *wait_eof)
 {
-  char optionName[255],        /* Name of option */
-       value[255],             /* Value of option */
-       *ptr;                   /* Pointer into name or value */
+  char sep,                            /* Separator character */
+       *name,                          /* Name of option */
+       *value;                         /* Value of option */
+
 
   if (serial)
     *serial = '\0';
 
   if (serial)
     *serial = '\0';
@@ -1562,56 +1596,61 @@ static void parse_options(const char *options,
   if (!options)
     return;
 
   if (!options)
     return;
 
-  while (*options != '\0')
+  while (*options)
   {
   {
-    /* Get the name... */
-    for (ptr = optionName; *options && *options != '=' && *options != '+';)
-      *ptr++ = *options++;
+   /*
+    * Get the name...
+    */
 
 
-    *ptr = '\0';
-    value[0] = '\0';
+    name = options;
 
 
-    if (*options == '=')
-    {
-      /* Get the value... */
+    while (*options && *options != '=' && *options != '+' && *options != '&')
       options ++;
 
       options ++;
 
-      for (ptr = value; *options && *options != '+';)
-       *ptr++ = *options++;
+    if ((sep = *options) != '\0')
+      *options++ = '\0';
 
 
-      *ptr = '\0';
+    if (sep == '=')
+    {
+     /*
+      * Get the value...
+      */
 
 
-      if (*options == '+')
+      value = options;
+
+      while (*options && *options != '+' && *options != '&')
        options ++;
        options ++;
+
+      if (*options)
+       *options++ = '\0';
     }
     }
-    else if (*options == '+')
-      options ++;
+    else
+      value = (char *)"";
 
 
-    /*
-     * Process the option...
-     */
-    if (strcasecmp(optionName, "waiteof") == 0)
+   /*
+    * Process the option...
+    */
+
+    if (!strcasecmp(name, "waiteof"))
     {
     {
-      if (strcasecmp(value, "on") == 0 ||
-         strcasecmp(value, "yes") == 0 ||
-         strcasecmp(value, "true") == 0)
+      if (!strcasecmp(value, "on") ||
+         !strcasecmp(value, "yes") ||
+         !strcasecmp(value, "true"))
        *wait_eof = true;
        *wait_eof = true;
-      else if (strcasecmp(value, "off")   == 0 ||
-              strcasecmp(value, "no")    == 0 ||
-              strcasecmp(value, "false") == 0)
+      else if (!strcasecmp(value, "off") ||
+              !strcasecmp(value, "no") ||
+              !strcasecmp(value, "false"))
        *wait_eof = false;
       else
        *wait_eof = false;
       else
-       fprintf(stderr, _("WARNING: Boolean expected for waiteof option \"%s\"\n"), value);
+       _cupsLangPrintf(stderr,
+                       _("WARNING: Boolean expected for waiteof option "
+                         "\"%s\"\n"), value);
     }
     }
-    else if (strcasecmp(optionName, "serial") == 0)
-    {
+    else if (!strcasecmp(name, "serial"))
       strlcpy(serial, value, serial_size);
       strlcpy(serial, value, serial_size);
-    }
-    else if (strcasecmp(optionName, "location") == 0 && location)
+    else if (!strcasecmp(name, "location") && location)
       *location = strtol(value, NULL, 16);
   }
       *location = strtol(value, NULL, 16);
   }
-
-  return;
 }
 
 
 }
 
 
@@ -1885,7 +1924,7 @@ static void parse_pserror(char *sockBuffer,
 
 
 /*
 
 
 /*
- * 'soft_reset'
+ * 'soft_reset()' - Send a soft reset to the device.
  */
 
 static void soft_reset()
  */
 
 static void soft_reset()
@@ -1971,5 +2010,5 @@ static void get_device_id(cups_sc_status_t *status,
 
 
 /*
 
 
 /*
- * End of "$Id: usb-darwin.c 6680 2007-07-16 18:46:16Z mike $".
+ * End of "$Id: usb-darwin.c 6953 2007-09-13 22:41:21Z mike $".
  */
  */
index ff9e825a0d9ac525108832b31d85ca1d6a481566..60f821d975fa9735f92403efe14acb51a11ccb4b 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: usb-unix.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: usb-unix.c 6911 2007-09-04 20:35:08Z mike $"
  *
  *   USB port backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   USB port backend for the Common UNIX Printing System (CUPS).
  *
@@ -48,7 +48,7 @@ int                                   /* O - Exit status */
 print_device(const char *uri,          /* I - Device URI */
              const char *hostname,     /* I - Hostname/manufacturer */
              const char *resource,     /* I - Resource/modelname */
 print_device(const char *uri,          /* I - Device URI */
              const char *hostname,     /* I - Hostname/manufacturer */
              const char *resource,     /* I - Resource/modelname */
-            const char *options,       /* I - Device options/serial number */
+            char       *options,       /* I - Device options/serial number */
             int        print_fd,       /* I - File descriptor to print */
             int        copies,         /* I - Copies to print */
             int        argc,           /* I - Number of command-line arguments (6 or 7) */
             int        print_fd,       /* I - File descriptor to print */
             int        copies,         /* I - Copies to print */
             int        argc,           /* I - Number of command-line arguments (6 or 7) */
@@ -105,8 +105,9 @@ print_device(const char *uri,               /* I - Device URI */
        * available printer in the class.
        */
 
        * available printer in the class.
        */
 
-        fputs(_("INFO: Unable to contact printer, queuing on next "
-               "printer in class...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Unable to contact printer, queuing on next "
+                       "printer in class...\n"));
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
 
        /*
         * Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -119,20 +120,23 @@ print_device(const char *uri,             /* I - Device URI */
 
       if (errno == EBUSY)
       {
 
       if (errno == EBUSY)
       {
-        fputs(_("INFO: Printer busy; will retry in 10 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 10 seconds...\n"));
        sleep(10);
       }
       else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
                errno == ENODEV)
       {
        sleep(10);
       }
       else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
                errno == ENODEV)
       {
-        fputs(_("INFO: Printer not connected; will retry in 30 seconds...\n"),
-             stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer not connected; will retry in 30 "
+                       "seconds...\n"));
        sleep(30);
       }
       else
       {
        sleep(30);
       }
       else
       {
-       fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
-               resource, strerror(errno));
+       _cupsLangPrintf(stderr,
+                       _("ERROR: Unable to open device file \"%s\": %s\n"),
+                       resource, strerror(errno));
        return (CUPS_BACKEND_FAILED);
       }
     }
        return (CUPS_BACKEND_FAILED);
       }
     }
@@ -172,13 +176,13 @@ print_device(const char *uri,             /* I - Device URI */
     tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
 
     if (print_fd != 0 && tbytes >= 0)
     tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
 
     if (print_fd != 0 && tbytes >= 0)
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sent print file, %lld bytes...\n"),
+                     _("INFO: Sent print file, %lld bytes...\n"),
 #else
 #else
-              _("INFO: Sent print file, %ld bytes...\n"),
+                     _("INFO: Sent print file, %ld bytes...\n"),
 #endif /* HAVE_LONG_LONG */
 #endif /* HAVE_LONG_LONG */
-              CUPS_LLCAST tbytes);
+                     CUPS_LLCAST tbytes);
   }
 
  /*
   }
 
  /*
@@ -411,8 +415,8 @@ open_device(const char *uri,                /* I - Device URI */
 
       if (busy)
       {
 
       if (busy)
       {
-       fputs(_("INFO: Printer busy; will retry in 5 seconds...\n"),
-             stderr);
+       _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 5 seconds...\n"));
        sleep(5);
       }
     }
        sleep(5);
       }
     }
@@ -504,8 +508,8 @@ open_device(const char *uri,                /* I - Device URI */
 
       if (busy)
       {
 
       if (busy)
       {
-       fputs(_("INFO: Printer is busy; will retry in 5 seconds...\n"),
-             stderr);
+       _cupsLangPuts(stderr,
+                     _("INFO: Printer is busy; will retry in 5 seconds...\n"));
        sleep(5);
       }
     }
        sleep(5);
       }
     }
@@ -562,7 +566,7 @@ side_cb(int print_fd,                       /* I - Print file */
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
 
   if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
   {
-    fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+    _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
     return;
   }
 
     return;
   }
 
@@ -611,5 +615,5 @@ side_cb(int print_fd,                       /* I - Print file */
 
 
 /*
 
 
 /*
- * End of "$Id: usb-unix.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: usb-unix.c 6911 2007-09-04 20:35:08Z mike $".
  */
  */
index 2abd4df47fb88c478ff1c6ce42685feb4df76765..689d3990060c3213e06559cd14882afe549075a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: usb.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: usb.c 6911 2007-09-04 20:35:08Z mike $"
  *
  *   USB port backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   USB port backend for the Common UNIX Printing System (CUPS).
  *
@@ -54,7 +54,7 @@
 
 void   list_devices(void);
 int    print_device(const char *uri, const char *hostname,
 
 void   list_devices(void);
 int    print_device(const char *uri, const char *hostname,
-                    const char *resource, const char *options,
+                    const char *resource, char *options,
                     int print_fd, int copies, int argc, char *argv[]);
 
 
                     int print_fd, int copies, int argc, char *argv[]);
 
 
@@ -99,7 +99,7 @@ int                                   /* O - Exit status */
 print_device(const char *uri,          /* I - Device URI */
              const char *hostname,     /* I - Hostname/manufacturer */
              const char *resource,     /* I - Resource/modelname */
 print_device(const char *uri,          /* I - Device URI */
              const char *hostname,     /* I - Hostname/manufacturer */
              const char *resource,     /* I - Resource/modelname */
-            const char *options,       /* I - Device options/serial number */
+            char       *options,       /* I - Device options/serial number */
             int        print_fd,       /* I - File descriptor to print */
             int        copies,         /* I - Copies to print */
             int        argc,           /* I - Number of command-line arguments (6 or 7) */
             int        print_fd,       /* I - File descriptor to print */
             int        copies,         /* I - Copies to print */
             int        argc,           /* I - Number of command-line arguments (6 or 7) */
@@ -184,8 +184,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   }
   else if (argc < 6 || argc > 7)
   {
   }
   else if (argc < 6 || argc > 7)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-            argv[0]);
+    _cupsLangPrintf(stderr,
+                    _("Usage: %s job-id user title copies options [file]\n"),
+                    argv[0]);
     return (CUPS_BACKEND_FAILED);
   }
 
     return (CUPS_BACKEND_FAILED);
   }
 
@@ -200,8 +201,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
                      hostname, sizeof(hostname), &port,
                      resource, sizeof(resource)) < HTTP_URI_OK)
   {
                      hostname, sizeof(hostname), &port,
                      resource, sizeof(resource)) < HTTP_URI_OK)
   {
-    fputs(_("ERROR: No device URI found in argv[0] or in DEVICE_URI "
-           "environment variable!\n"), stderr);
+    _cupsLangPuts(stderr,
+                  _("ERROR: No device URI found in argv[0] or in DEVICE_URI "
+                   "environment variable!\n"));
     return (1);
   }
 
     return (1);
   }
 
@@ -237,8 +239,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
 
     if ((print_fd = open(argv[6], O_RDONLY)) < 0)
     {
 
     if ((print_fd = open(argv[6], O_RDONLY)) < 0)
     {
-      fprintf(stderr, _("ERROR: Unable to open print file %s - %s\n"),
-              argv[6], strerror(errno));
+      _cupsLangPrintf(stderr, _("ERROR: Unable to open print file %s - %s\n"),
+                      argv[6], strerror(errno));
       return (CUPS_BACKEND_FAILED);
     }
 
       return (CUPS_BACKEND_FAILED);
     }
 
@@ -264,5 +266,5 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
 
 
 /*
 
 
 /*
- * End of "$Id: usb.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: usb.c 6911 2007-09-04 20:35:08Z mike $".
  */
  */
index 85a6a7caef1cbfc29dbc939fa7da9d3d771635a6..38fcec918c79fb568c9f63318ae19d16bf12ffd3 100644 (file)
@@ -151,6 +151,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
 
     cgiSetVariable("HELPFILE", helpfile);
     cgiSetVariable("HELPTITLE", n->text);
 
     cgiSetVariable("HELPFILE", helpfile);
     cgiSetVariable("HELPTITLE", n->text);
+    cgiSetVariable("TOPIC", n->section);
 
    /*
     * Send a standard page header...
 
    /*
     * Send a standard page header...
index 908db4b48ed06ed93d28c4a3cd392ef3ac3bf59d..021de82f53ca4903074924bfd65d066a0f2b5d4b 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: template.c 6717 2007-07-24 23:47:12Z mike $"
+ * "$Id: template.c 6799 2007-08-15 19:33:36Z mike $"
  *
  *   CGI template function.
  *
  *
  *   CGI template function.
  *
@@ -85,9 +85,9 @@ cgiCopyTemplateFile(FILE       *out,  /* I - Output file */
 void
 cgiCopyTemplateLang(const char *tmpl)  /* I - Base filename */
 {
 void
 cgiCopyTemplateLang(const char *tmpl)  /* I - Base filename */
 {
-  int          i;                      /* Looping var */
   char         filename[1024],         /* Filename */
   char         filename[1024],         /* Filename */
-               locale[16];             /* Locale name */
+               locale[16],             /* Locale name */
+               *locptr;                /* Pointer into locale name */
   const char   *directory,             /* Directory for templates */
                *lang;                  /* Language */
   FILE         *in;                    /* Input file */
   const char   *directory,             /* Directory for templates */
                *lang;                  /* Language */
   FILE         *in;                    /* Input file */
@@ -100,22 +100,19 @@ cgiCopyTemplateLang(const char *tmpl)     /* I - Base filename */
   * Convert the language to a locale name...
   */
 
   * Convert the language to a locale name...
   */
 
+  locale[0] = '\0';
+
   if ((lang = getenv("LANG")) != NULL)
   {
   if ((lang = getenv("LANG")) != NULL)
   {
-    for (i = 0; lang[i] && i < 15; i ++)
-      if (isalnum(lang[i] & 255) || lang[i] == '_')
-        locale[i] = tolower(lang[i]);
-      else if (lang[i] == '-')
-        locale[i] = '_';
-      else
-        break;
+    locale[0] = '/';
+    strlcpy(locale + 1, lang, sizeof(locale) - 1);
 
 
-    locale[i] = '\0';
+    if ((locptr = strchr(locale, '.')) != NULL)
+      *locptr = '\0';                  /* Strip charset */
   }
   }
-  else
-    locale[0] = '\0';
 
 
-  fprintf(stderr, "DEBUG2: locale=\"%s\"...\n", locale);
+  fprintf(stderr, "DEBUG: lang=\"%s\", locale=\"%s\"...\n",
+          lang ? lang : "(null)", locale);
 
  /*
   * See if we have a template file for this language...
 
  /*
   * See if we have a template file for this language...
@@ -123,14 +120,17 @@ cgiCopyTemplateLang(const char *tmpl)     /* I - Base filename */
 
   directory = cgiGetTemplateDir();
 
 
   directory = cgiGetTemplateDir();
 
-  snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl);
-  if (access(filename, 0))
+  snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
+  if ((in = fopen(filename, "r")) == NULL)
   {
   {
-    locale[2] = '\0';
+    locale[3] = '\0';
 
 
-    snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl);
-    if (access(filename, 0))
+    snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
+    if ((in = fopen(filename, "r")) == NULL)
+    {
       snprintf(filename, sizeof(filename), "%s/%s", directory, tmpl);
       snprintf(filename, sizeof(filename), "%s/%s", directory, tmpl);
+      in = fopen(filename, "r");
+    }
   }
 
   fprintf(stderr, "DEBUG2: Template file is \"%s\"...\n", filename);
   }
 
   fprintf(stderr, "DEBUG2: Template file is \"%s\"...\n", filename);
@@ -139,7 +139,7 @@ cgiCopyTemplateLang(const char *tmpl)       /* I - Base filename */
   * Open the template file...
   */
 
   * Open the template file...
   */
 
-  if ((in = fopen(filename, "r")) == NULL)
+  if (!in)
   {
     fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
             filename, strerror(errno));
   {
     fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
             filename, strerror(errno));
@@ -663,5 +663,5 @@ cgi_puturi(const char *s,           /* I - String to output */
 
 
 /*
 
 
 /*
- * End of "$Id: template.c 6717 2007-07-24 23:47:12Z mike $".
+ * End of "$Id: template.c 6799 2007-08-15 19:33:36Z mike $".
  */
  */
index ad9ab904151f5d0578b15f621508c28244700497..d6f4fb371609fd83ca35c6def762ae741ee1e4d2 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: mime.convs.in 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: mime.convs.in 6761 2007-08-02 17:58:59Z mike $"
 #
 #   DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
 #   VERSIONS OF CUPS.  Instead, create a "local.convs" file that
 #
 #   DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
 #   VERSIONS OF CUPS.  Instead, create a "local.convs" file that
@@ -109,5 +109,5 @@ application/vnd.cups-postscript     application/vnd.cups-raster     100     pstoraster
 @DEFAULT_RAW_PRINTING@application/octet-stream application/vnd.cups-raw        0       -
 
 #
 @DEFAULT_RAW_PRINTING@application/octet-stream application/vnd.cups-raw        0       -
 
 #
-# End of "$Id: mime.convs.in 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: mime.convs.in 6761 2007-08-02 17:58:59Z mike $".
 #
 #
index 27835e87c61fbb349e34f8a2f5e20cdea5d63946..7bfe47c615c0c825374534910e1677de0b1d16f9 100644 (file)
@@ -1,5 +1,5 @@
 dnl
 dnl
-dnl "$Id: cups-common.m4 6749 2007-07-31 00:00:21Z mike $"
+dnl "$Id: cups-common.m4 6946 2007-09-12 18:28:16Z mike $"
 dnl
 dnl   Common configuration stuff for the Common UNIX Printing System (CUPS).
 dnl
 dnl
 dnl   Common configuration stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -20,7 +20,7 @@ dnl Set the name of the config header file...
 AC_CONFIG_HEADER(config.h)
 
 dnl Versio number information...
 AC_CONFIG_HEADER(config.h)
 
 dnl Versio number information...
-CUPS_VERSION="1.3.0"
+CUPS_VERSION="1.3.1"
 CUPS_REVISION=""
 #if test -z "$CUPS_REVISION" -a -d .svn; then
 #      CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
 CUPS_REVISION=""
 #if test -z "$CUPS_REVISION" -a -d .svn; then
 #      CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
@@ -123,6 +123,7 @@ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
+AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
 AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
 AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
 
 AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
 AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
 
@@ -286,5 +287,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
 
 dnl
 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
 
 dnl
-dnl End of "$Id: cups-common.m4 6749 2007-07-31 00:00:21Z mike $".
+dnl End of "$Id: cups-common.m4 6946 2007-09-12 18:28:16Z mike $".
 dnl
 dnl
index c34dfd0901ccea68ffa7ec923b8ee60a644a3b34..a0bdffcbe13d1f4d49f948f14ed1836d5c445ec5 100644 (file)
@@ -1,5 +1,5 @@
 dnl
 dnl
-dnl "$Id: cups-directories.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-directories.m4 6838 2007-08-22 20:00:19Z mike $"
 dnl
 dnl   Directory stuff for the Common UNIX Printing System (CUPS).
 dnl
 dnl
 dnl   Directory stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -292,20 +292,24 @@ AC_SUBST(CUPS_FONTPATH)
 AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$CUPS_FONTPATH")
 
 # Locale data
 AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$CUPS_FONTPATH")
 
 # Locale data
-case "$uname" in
-       Linux | GNU | *BSD* | Darwin*)
-               CUPS_LOCALEDIR="$datadir/locale"
-               ;;
+if test "$localedir" = "\${datarootdir}/locale"; then
+       case "$uname" in
+               Linux | GNU | *BSD* | Darwin*)
+                       CUPS_LOCALEDIR="$datarootdir/locale"
+                       ;;
 
 
-       OSF1* | AIX*)
-               CUPS_LOCALEDIR="$exec_prefix/lib/nls/msg"
-               ;;
+               OSF1* | AIX*)
+                       CUPS_LOCALEDIR="$exec_prefix/lib/nls/msg"
+                       ;;
 
 
-       *)
-               # This is the standard System V location...
-               CUPS_LOCALEDIR="$exec_prefix/lib/locale"
-               ;;
-esac
+               *)
+                       # This is the standard System V location...
+                       CUPS_LOCALEDIR="$exec_prefix/lib/locale"
+                       ;;
+       esac
+else
+       CUPS_LOCALEDIR="$localedir"
+fi
 
 AC_DEFINE_UNQUOTED(CUPS_LOCALEDIR, "$CUPS_LOCALEDIR")
 AC_SUBST(CUPS_LOCALEDIR)
 
 AC_DEFINE_UNQUOTED(CUPS_LOCALEDIR, "$CUPS_LOCALEDIR")
 AC_SUBST(CUPS_LOCALEDIR)
@@ -356,5 +360,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
 AC_SUBST(CUPS_STATEDIR)
 
 dnl
 AC_SUBST(CUPS_STATEDIR)
 
 dnl
-dnl End of "$Id: cups-directories.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-directories.m4 6838 2007-08-22 20:00:19Z mike $".
 dnl
 dnl
index b59bfd0ab1c32a00e19f6cc54cfd81dc2ae4d51f..4c4a217141bc508c31d83ca9adb2edcc29a567ed 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: config.h.in 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: config.h.in 6878 2007-08-29 17:22:26Z mike $"
  *
  *   Configuration file for the Common UNIX Printing System (CUPS).
  *
  *
  *   Configuration file for the Common UNIX Printing System (CUPS).
  *
 #undef HAVE_DLFCN_H
 
 
 #undef HAVE_DLFCN_H
 
 
+/*
+ * Do we have <sys/param.h>?
+ */
+
+#undef HAVE_SYS_PARAM_H
+
+
 /*
  * Do we have <sys/ucred.h>?
  */
 /*
  * Do we have <sys/ucred.h>?
  */
 #endif /* !_CUPS_CONFIG_H_ */
 
 /*
 #endif /* !_CUPS_CONFIG_H_ */
 
 /*
- * End of "$Id: config.h.in 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: config.h.in 6878 2007-08-29 17:22:26Z mike $".
  */
  */
index ceb65ec2f062daf3359688f19fd3584536ece824..05597719377ca94c38de2ea03def2bbd7a3f955f 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: auth.c 6722 2007-07-25 17:19:09Z mike $"
+ * "$Id: auth.c 6779 2007-08-08 19:49:48Z mike $"
  *
  *   Authentication functions for the Common UNIX Printing System (CUPS).
  *
  *
  *   Authentication functions for the Common UNIX Printing System (CUPS).
  *
@@ -654,5 +654,5 @@ cups_local_auth(http_t *http)               /* I - HTTP connection to server */
 
 
 /*
 
 
 /*
- * End of "$Id: auth.c 6722 2007-07-25 17:19:09Z mike $".
+ * End of "$Id: auth.c 6779 2007-08-08 19:49:48Z mike $".
  */
  */
index befa0a39582ad53968949c6ac55413be1d61e0a8..9cb3e2d1511f76e7e31b13379460ce19a7ac8413 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: cups.h 6658 2007-07-13 01:13:26Z mike $"
+ * "$Id: cups.h 6946 2007-09-12 18:28:16Z mike $"
  *
  *   API definitions for the Common UNIX Printing System (CUPS).
  *
  *
  *   API definitions for the Common UNIX Printing System (CUPS).
  *
@@ -59,10 +59,10 @@ extern "C" {
  * Constants...
  */
 
  * Constants...
  */
 
-#  define CUPS_VERSION         1.0300
+#  define CUPS_VERSION         1.0301
 #  define CUPS_VERSION_MAJOR   1
 #  define CUPS_VERSION_MINOR   3
 #  define CUPS_VERSION_MAJOR   1
 #  define CUPS_VERSION_MINOR   3
-#  define CUPS_VERSION_PATCH   0
+#  define CUPS_VERSION_PATCH   1
 #  define CUPS_DATE_ANY                -1
 
 
 #  define CUPS_DATE_ANY                -1
 
 
@@ -256,5 +256,5 @@ extern void         cupsSetDefaultDest(const char *name,
 #endif /* !_CUPS_CUPS_H_ */
 
 /*
 #endif /* !_CUPS_CUPS_H_ */
 
 /*
- * End of "$Id: cups.h 6658 2007-07-13 01:13:26Z mike $".
+ * End of "$Id: cups.h 6946 2007-09-12 18:28:16Z mike $".
  */
  */
index 14e6112def13f867a1ad9971e75154d9eb1c5b63..58504ca1df68c0a6e48649cf6773fbc3f649b39e 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: http-addr.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: http-addr.c 6816 2007-08-20 20:16:00Z mike $"
  *
  *   HTTP address routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   HTTP address routines for the Common UNIX Printing System (CUPS).
  *
@@ -197,18 +197,17 @@ httpAddrLookup(
 #endif /* AF_LOCAL */
 #ifdef HAVE_GETNAMEINFO
   {
 #endif /* AF_LOCAL */
 #ifdef HAVE_GETNAMEINFO
   {
-    if (getnameinfo(&addr->addr, httpAddrLength(addr), name, namelen,
-                    NULL, 0, 0))
-    {
-     /*
-      * If we get an error back, then the address type is not supported
-      * and we should zero out the buffer...
-      */
-
-      name[0] = '\0';
+   /*
+    * STR #2486: httpAddrLookup() fails when getnameinfo() returns EAI_AGAIN
+    *
+    * FWIW, I think this is really a bug in the implementation of
+    * getnameinfo(), but falling back on httpAddrString() is easy to
+    * do...
+    */
 
 
-      return (NULL);
-    }
+    if (getnameinfo(&addr->addr, httpAddrLength(addr), name, namelen,
+                   NULL, 0, 0))
+      return (httpAddrString(addr, name, namelen));
   }
 #else
   {
   }
 #else
   {
@@ -553,5 +552,5 @@ httpGetHostname(http_t *http,               /* I - HTTP connection or NULL */
 
 
 /*
 
 
 /*
- * End of "$Id: http-addr.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: http-addr.c 6816 2007-08-20 20:16:00Z mike $".
  */
  */
index cd46bb31ff1327b53589c758bd6dc2cc78bdf904..c36eb8d011837dcedaf387776a444ffb0a4509f6 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: http-private.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: http-private.h 6934 2007-09-10 16:46:20Z mike $"
  *
  *   Private HTTP definitions for the Common UNIX Printing System (CUPS).
  *
  *
  *   Private HTTP definitions for the Common UNIX Printing System (CUPS).
  *
@@ -62,6 +62,9 @@
 #    ifndef HAVE_GSS_C_NT_HOSTBASED_SERVICE
 #      define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
 #    endif /* !HAVE_GSS_C_NT_HOSTBASED_SERVICE */
 #    ifndef HAVE_GSS_C_NT_HOSTBASED_SERVICE
 #      define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
 #    endif /* !HAVE_GSS_C_NT_HOSTBASED_SERVICE */
+#    ifdef HAVE_KRB5_H
+#      include <krb5.h>
+#    endif /* HAVE_KRB5_H */
 #  endif /* HAVE_GSSAPI */
 
 #  ifdef HAVE_AUTHORIZATION_H
 #  endif /* HAVE_GSSAPI */
 
 #  ifdef HAVE_AUTHORIZATION_H
@@ -263,5 +266,5 @@ extern void _cups_freeifaddrs(struct ifaddrs *addrs);
 #endif /* !_CUPS_HTTP_PRIVATE_H_ */
 
 /*
 #endif /* !_CUPS_HTTP_PRIVATE_H_ */
 
 /*
- * End of "$Id: http-private.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: http-private.h 6934 2007-09-10 16:46:20Z mike $".
  */
  */
index ac62feb279aa49aefad44042df7c44be0bf2c8c2..a615eecba0d710bf48cb3b00dcbd2aa04bf62f8f 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: language.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: language.c 6917 2007-09-05 21:14:17Z mike $"
  *
  *   I18N/language support for the Common UNIX Printing System (CUPS).
  *
  *
  *   I18N/language support for the Common UNIX Printing System (CUPS).
  *
@@ -985,11 +985,12 @@ typedef struct
 static const _apple_name_locale_t apple_name_locale[] =
 {
   { "en"       , "en_US" },
 static const _apple_name_locale_t apple_name_locale[] =
 {
   { "en"       , "en_US" },
-  { "no"       , "nb"    },
+  { "nb"       , "no"    },
   { "zh-Hans"  , "zh_CN" },
   { "zh-Hant"  , "zh_TW" }
 };
 
   { "zh-Hans"  , "zh_CN" },
   { "zh-Hant"  , "zh_TW" }
 };
 
+
 /*
  * 'appleLangDefault()' - Get the default locale string.
  */
 /*
  * 'appleLangDefault()' - Get the default locale string.
  */
@@ -998,6 +999,8 @@ static const char *                 /* O - Locale string */
 appleLangDefault(void)
 {
   int                  i;              /* Looping var */
 appleLangDefault(void)
 {
   int                  i;              /* Looping var */
+  CFBundleRef          bundle;         /* Main bundle (if any) */
+  CFArrayRef           bundleList;     /* List of localizations in bundle */
   CFPropertyListRef    localizationList;
                                        /* List of localization data */
   CFStringRef          languageName;   /* Current name */
   CFPropertyListRef    localizationList;
                                        /* List of localization data */
   CFStringRef          languageName;   /* Current name */
@@ -1014,63 +1017,77 @@ appleLangDefault(void)
   if (!cg->language[0])
   {
     if ((lang = getenv("LANG")))
   if (!cg->language[0])
   {
     if ((lang = getenv("LANG")))
+    {
       strlcpy(cg->language, lang, sizeof(cg->language));
       strlcpy(cg->language, lang, sizeof(cg->language));
-    else
+      return (cg->language);
+    }
+    else if ((bundle = CFBundleGetMainBundle()) != NULL &&
+             (bundleList = CFBundleCopyBundleLocalizations(bundle)) != NULL)
     {
       localizationList =
     {
       localizationList =
-          CFPreferencesCopyAppValue(CFSTR("AppleLanguages"),
-                                    kCFPreferencesCurrentApplication);
+         CFBundleCopyPreferredLocalizationsFromArray(bundleList);
 
 
-      if (localizationList != NULL)
+      CFRelease(bundleList);
+    }
+    else
+      localizationList =
+         CFPreferencesCopyAppValue(CFSTR("AppleLanguages"),
+                                   kCFPreferencesCurrentApplication);
+
+    if (localizationList)
+    {
+      if (CFGetTypeID(localizationList) == CFArrayGetTypeID() &&
+         CFArrayGetCount(localizationList) > 0)
       {
       {
-       if (CFGetTypeID(localizationList) == CFArrayGetTypeID() &&
-           CFArrayGetCount(localizationList) > 0)
+       languageName = CFArrayGetValueAtIndex(localizationList, 0);
+
+       if (languageName &&
+           CFGetTypeID(languageName) == CFStringGetTypeID())
        {
        {
-          languageName = CFArrayGetValueAtIndex(localizationList, 0);
+         localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(
+                          kCFAllocatorDefault, languageName);
 
 
-          if (languageName != NULL &&
-              CFGetTypeID(languageName) == CFStringGetTypeID())
-          {
-           localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(
-                            kCFAllocatorDefault, languageName);
+         if (localeName)
+         {
+           CFStringGetCString(localeName, cg->language, sizeof(cg->language),
+                              kCFStringEncodingASCII);
+           CFRelease(localeName);
 
 
-           if (localeName != NULL)
-           {
-             CFStringGetCString(localeName, cg->language, sizeof(cg->language),
-                                kCFStringEncodingASCII);
-             CFRelease(localeName);
+           DEBUG_printf(("appleLangDefault: cg->language=\"%s\"\n",
+                         cg->language));
 
 
-            /*
-             * Map new language identifiers to locales...
-             */
+          /*
+           * Map new language identifiers to locales...
+           */
 
 
-             for (i = 0;
-                  i < sizeof(apple_name_locale) / sizeof(apple_name_locale[0]);
-                  i++)
+           for (i = 0;
+                i < sizeof(apple_name_locale) / sizeof(apple_name_locale[0]);
+                i++)
+           {
+             if (!strcmp(cg->language, apple_name_locale[i].name))
              {
              {
-               if (!strcmp(cg->language, apple_name_locale[i].name))
-               {
-                 strlcpy(cg->language, apple_name_locale[i].locale, 
-                         sizeof(cg->language));
-                 break;
-               }
+               DEBUG_printf(("appleLangDefault: mapping \"%s\" to \"%s\"...\n",
+                             cg->language, apple_name_locale[i].locale));
+               strlcpy(cg->language, apple_name_locale[i].locale, 
+                       sizeof(cg->language));
+               break;
              }
              }
+           }
 
 
-            /*
-             * Convert language subtag into region subtag...
-             */
+          /*
+           * Convert language subtag into region subtag...
+           */
 
 
-             if (cg->language[2] == '-')
-               cg->language[2] = '_';
+           if (cg->language[2] == '-')
+             cg->language[2] = '_';
 
 
-             if (strchr(cg->language, '.') == NULL)
-               strlcat(cg->language, ".UTF-8", sizeof(cg->language));
-           }
-          }
+           if (!strchr(cg->language, '.'))
+             strlcat(cg->language, ".UTF-8", sizeof(cg->language));
+         }
        }
        }
-
-       CFRelease(localizationList);
       }
       }
+
+      CFRelease(localizationList);
     }
   
    /*
     }
   
    /*
@@ -1354,5 +1371,5 @@ cups_unquote(char       *d,               /* O - Unquoted string */
 
 
 /*
 
 
 /*
- * End of "$Id: language.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: language.c 6917 2007-09-05 21:14:17Z mike $".
  */
  */
index 911d8ef357da78ceb573ddd1925d4705687bd60a..347b9d97e294f1e678bdaec7f0d2e59ec52a4bb6 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: localize.c 6686 2007-07-16 23:11:59Z mike $"
+ * "$Id: localize.c 6883 2007-08-29 21:05:17Z mike $"
  *
  *   PPD custom option routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   PPD custom option routines for the Common UNIX Printing System (CUPS).
  *
@@ -44,7 +44,8 @@
  * Local functions...
  */
 
  * Local functions...
  */
 
-static void            ppd_ll_CC(char *ll_CC, char *ll);
+static void            ppd_ll_CC(char *ll_CC, int ll_CC_size,
+                                 char *ll, int ll_size);
 static ppd_attr_t      *ppd_localized_attr(ppd_file_t *ppd,
                                            const char *keyword,
                                            const char *spec, const char *ll_CC,
 static ppd_attr_t      *ppd_localized_attr(ppd_file_t *ppd,
                                            const char *keyword,
                                            const char *spec, const char *ll_CC,
@@ -90,7 +91,7 @@ ppdLocalize(ppd_file_t *ppd)          /* I - PPD file */
   * Get the default language...
   */
 
   * Get the default language...
   */
 
-  ppd_ll_CC(ll_CC, ll);
+  ppd_ll_CC(ll_CC, sizeof(ll_CC), ll, sizeof(ll));
 
  /*
   * Now lookup all of the groups, options, choices, etc.
 
  /*
   * Now lookup all of the groups, options, choices, etc.
@@ -240,7 +241,7 @@ ppdLocalizeIPPReason(
   * Get the default language...
   */
 
   * Get the default language...
   */
 
-  ppd_ll_CC(ll_CC, ll);
+  ppd_ll_CC(ll_CC, sizeof(ll_CC), ll, sizeof(ll));
 
  /*
   * Find the localized attribute...
 
  /*
   * Find the localized attribute...
@@ -391,8 +392,9 @@ ppdLocalizeIPPReason(
 
 static void
 ppd_ll_CC(char *ll_CC,                 /* O - Country-specific locale name */
 
 static void
 ppd_ll_CC(char *ll_CC,                 /* O - Country-specific locale name */
-          char *ll)                    /* O - Generic locale name */
-          
+          int  ll_CC_size,             /* I - Size of country-specific name */
+          char *ll,                    /* O - Generic locale name */
+          int  ll_size)                        /* I - Size of generic name */
 {
   cups_lang_t  *lang;                  /* Current language */
 
 {
   cups_lang_t  *lang;                  /* Current language */
 
@@ -403,8 +405,8 @@ ppd_ll_CC(char *ll_CC,                      /* O - Country-specific locale name */
 
   if ((lang = cupsLangDefault()) == NULL)
   {
 
   if ((lang = cupsLangDefault()) == NULL)
   {
-    strcpy(ll_CC, "en_US");
-    strcpy(ll, "en");
+    strlcpy(ll_CC, "en_US", ll_CC_size);
+    strlcpy(ll, "en", ll_size);
     return;
   }
 
     return;
   }
 
@@ -412,8 +414,10 @@ ppd_ll_CC(char *ll_CC,                     /* O - Country-specific locale name */
   * Copy the locale name...
   */
 
   * Copy the locale name...
   */
 
-  strlcpy(ll_CC, lang->language, sizeof(ll_CC));
-  strlcpy(ll, lang->language, sizeof(ll));
+  strlcpy(ll_CC, lang->language, ll_CC_size);
+  strlcpy(ll, lang->language, ll_size);
+
+  DEBUG_printf(("ll_CC=\"%s\", ll=\"%s\"\n", ll_CC, ll));
 
   if (strlen(ll_CC) == 2)
   {
 
   if (strlen(ll_CC) == 2)
   {
@@ -423,16 +427,16 @@ ppd_ll_CC(char *ll_CC,                    /* O - Country-specific locale name */
     */
 
     if (!strcmp(ll_CC, "cs"))
     */
 
     if (!strcmp(ll_CC, "cs"))
-      strcpy(ll_CC, "cs_CZ");
+      strlcpy(ll_CC, "cs_CZ", ll_CC_size);
     else if (!strcmp(ll_CC, "en"))
     else if (!strcmp(ll_CC, "en"))
-      strcpy(ll_CC, "en_US");
+      strlcpy(ll_CC, "en_US", ll_CC_size);
     else if (!strcmp(ll_CC, "ja"))
     else if (!strcmp(ll_CC, "ja"))
-      strcpy(ll_CC, "ja_JP");
+      strlcpy(ll_CC, "ja_JP", ll_CC_size);
     else if (!strcmp(ll_CC, "sv"))
     else if (!strcmp(ll_CC, "sv"))
-      strcpy(ll_CC, "sv_SE");
-    else if (!strcmp(ll_CC, "zh"))
-      strcpy(ll_CC, "zh_CN");          /* Simplified Chinese */
-    else
+      strlcpy(ll_CC, "sv_SE", ll_CC_size);
+    else if (!strcmp(ll_CC, "zh"))     /* Simplified Chinese */
+      strlcpy(ll_CC, "zh_CN", ll_CC_size);
+    else if (ll_CC_size >= 6)
     {
       ll_CC[2] = '_';
       ll_CC[3] = toupper(ll_CC[0] & 255);
     {
       ll_CC[2] = '_';
       ll_CC[3] = toupper(ll_CC[0] & 255);
@@ -475,17 +479,31 @@ ppd_localized_attr(ppd_file_t *ppd,       /* I - PPD file */
     snprintf(lkeyword, sizeof(lkeyword), "%s.%s", ll, keyword);
     attr = ppdFindAttr(ppd, lkeyword, spec);
 
     snprintf(lkeyword, sizeof(lkeyword), "%s.%s", ll, keyword);
     attr = ppdFindAttr(ppd, lkeyword, spec);
 
-    if (!attr && !strcmp(ll, "ja"))
+    if (!attr)
     {
     {
-     /*
-      * Due to a bug in the CUPS DDK 1.1.0 ppdmerge program, Japanese
-      * PPD files were incorrectly assigned "jp" as the locale name
-      * instead of "ja".  Support both the old (incorrect) and new
-      * locale names for Japanese...
-      */
+      if (!strcmp(ll, "ja"))
+      {
+       /*
+       * Due to a bug in the CUPS DDK 1.1.0 ppdmerge program, Japanese
+       * PPD files were incorrectly assigned "jp" as the locale name
+       * instead of "ja".  Support both the old (incorrect) and new
+       * locale names for Japanese...
+       */
 
 
-      snprintf(lkeyword, sizeof(lkeyword), "jp.%s", keyword);
-      attr = ppdFindAttr(ppd, lkeyword, spec);
+       snprintf(lkeyword, sizeof(lkeyword), "jp.%s", keyword);
+       attr = ppdFindAttr(ppd, lkeyword, spec);
+      }
+      else if (!strcmp(ll, "no"))
+      {
+       /*
+       * Norway has two languages, "Bokmal" (the primary one)
+       * and "Nynorsk" (new Norwegian); we map "no" to "nb" here as
+       * recommended by the locale folks...
+       */
+
+       snprintf(lkeyword, sizeof(lkeyword), "nb.%s", keyword);
+       attr = ppdFindAttr(ppd, lkeyword, spec);
+      }
     }
   }
 
     }
   }
 
@@ -502,5 +520,5 @@ ppd_localized_attr(ppd_file_t *ppd, /* I - PPD file */
 
 
 /*
 
 
 /*
- * End of "$Id: localize.c 6686 2007-07-16 23:11:59Z mike $".
+ * End of "$Id: localize.c 6883 2007-08-29 21:05:17Z mike $".
  */
  */
index 83298a226a211734c8033fd0df86b592c69d480c..98720bf01a1668d417a02ecbed5de1d85726f432 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: mark.c 6703 2007-07-20 21:28:10Z mike $"
+ * "$Id: mark.c 6942 2007-09-10 22:55:00Z mike $"
  *
  *   Option marking routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Option marking routines for the Common UNIX Printing System (CUPS).
  *
@@ -724,5 +724,5 @@ ppd_defaults(ppd_file_t  *ppd,      /* I - PPD file */
 
 
 /*
 
 
 /*
- * End of "$Id: mark.c 6703 2007-07-20 21:28:10Z mike $".
+ * End of "$Id: mark.c 6942 2007-09-10 22:55:00Z mike $".
  */
  */
index bf4185db0894ade442926b5cee714af17df228c7..779722070e9d515a5b4512c149d7925ab0a77c8a 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: ppd.c 6719 2007-07-25 00:08:49Z mike $"
+ * "$Id: ppd.c 6942 2007-09-10 22:55:00Z mike $"
  *
  *   PPD file routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   PPD file routines for the Common UNIX Printing System (CUPS).
  *
@@ -3186,5 +3186,5 @@ ppd_read(cups_file_t    *fp,              /* I - File to read from */
 
 
 /*
 
 
 /*
- * End of "$Id: ppd.c 6719 2007-07-25 00:08:49Z mike $".
+ * End of "$Id: ppd.c 6942 2007-09-10 22:55:00Z mike $".
  */
  */
index 303b200a210ff2e1f28c3d7a306b810f8d24cf2a..0add09e97ece842385aa55566ded798eeab580b9 100644 (file)
@@ -1,6 +1,6 @@
 *PPD-Adobe: "4.3"
 *%
 *PPD-Adobe: "4.3"
 *%
-*% "$Id: test.ppd 6676 2007-07-16 17:09:09Z mike $"
+*% "$Id: test.ppd 6799 2007-08-15 19:33:36Z mike $"
 *%
 *% Test PPD file for the Common UNIX Printing System (CUPS).
 *%
 *%
 *% Test PPD file for the Common UNIX Printing System (CUPS).
 *%
@@ -149,6 +149,18 @@ http://foo/fr/bar.html
 help:anchor='foo'%20bookID=Vendor%20Help
 /help/fr/foo/bar.html"
 *End
 help:anchor='foo'%20bookID=Vendor%20Help
 /help/fr/foo/bar.html"
 *End
+*zh_TW.cupsIPPReason foo/Number 1 Foo Reason: "text:Number%201
+text:Foo%20Reason
+http://foo/zh_TW/bar.html
+help:anchor='foo'%20bookID=Vendor%20Help
+/help/zh_TW/foo/bar.html"
+*End
+*zh.cupsIPPReason foo/Number 2 Foo Reason: "text:Number%202
+text:Foo%20Reason
+http://foo/zh/bar.html
+help:anchor='foo'%20bookID=Vendor%20Help
+/help/zh/foo/bar.html"
+*End
 
 *DefaultFont: Courier
 *Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
 
 *DefaultFont: Courier
 *Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
@@ -187,5 +199,5 @@ help:anchor='foo'%20bookID=Vendor%20Help
 *Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
 *Font ZapfDingbats: Special "(001.004S)" Standard ROM
 *%
 *Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
 *Font ZapfDingbats: Special "(001.004S)" Standard ROM
 *%
-*% End of "$Id: test.ppd 6676 2007-07-16 17:09:09Z mike $".
+*% End of "$Id: test.ppd 6799 2007-08-15 19:33:36Z mike $".
 *%
 *%
index 6fb4fb49c75bfdc9e0806de30ee3ffab9692acdb..afb252f48ffb3b012030a5656fc984aa3f8e0208 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: testppd.c 6676 2007-07-16 17:09:09Z mike $"
+ * "$Id: testppd.c 6799 2007-08-15 19:33:36Z mike $"
  *
  *   PPD test program for the Common UNIX Printing System (CUPS).
  *
  *
  *   PPD test program for the Common UNIX Printing System (CUPS).
  *
@@ -224,6 +224,18 @@ main(int  argc,                            /* I - Number of command-line arguments */
       printf("FAIL (\"%s\" instead of \"La Long Foo Reason\")\n", buffer);
     }
 
       printf("FAIL (\"%s\" instead of \"La Long Foo Reason\")\n", buffer);
     }
 
+    putenv("LANG=zh_TW");
+
+    fputs("ppdLocalizeIPPReason(zh_TW text): ", stdout);
+    if (ppdLocalizeIPPReason(ppd, "foo", NULL, buffer, sizeof(buffer)) &&
+        !strcmp(buffer, "Number 1 Foo Reason"))
+      puts("PASS");
+    else
+    {
+      status ++;
+      printf("FAIL (\"%s\" instead of \"Number 1 Foo Reason\")\n", buffer);
+    }
+
     ppdClose(ppd);
   }
   else
     ppdClose(ppd);
   }
   else
@@ -360,5 +372,5 @@ main(int  argc,                             /* I - Number of command-line arguments */
 
 
 /*
 
 
 /*
- * End of "$Id: testppd.c 6676 2007-07-16 17:09:09Z mike $".
+ * End of "$Id: testppd.c 6799 2007-08-15 19:33:36Z mike $".
  */
  */
index 2414de04f0019b2fd7f8ca9a6a29e5b4b700bc06..9b7dd88122be7b6c7490038639bfa9f39bcd42b7 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: Makefile 6733 2007-07-26 18:09:46Z mike $"
+# "$Id: Makefile 6824 2007-08-20 22:21:15Z mike $"
 #
 #   Documentation makefile for the Common UNIX Printing System (CUPS).
 #
 #
 #   Documentation makefile for the Common UNIX Printing System (CUPS).
 #
@@ -92,6 +92,8 @@ WEBIMAGES     =       \
                        images/printer-idle.gif \
                        images/printer-processing.gif \
                        images/printer-stopped.gif \
                        images/printer-idle.gif \
                        images/printer-processing.gif \
                        images/printer-stopped.gif \
+                       images/raster.png \
+                       images/raster.svg \
                        images/smiley.jpg \
                        images/tab-left.gif \
                        images/tab-right.gif \
                        images/smiley.jpg \
                        images/tab-left.gif \
                        images/tab-right.gif \
index 08457c05b0ff394fba090044b2024eb15fc221ed..4b8bc87bdc1a135a098ebae7454d5062b6981761 100644 (file)
@@ -110,14 +110,13 @@ SPAN.info {
   white-space: nowrap;
 }
 
   white-space: nowrap;
 }
 
-H2 SPAN.info, H3 SPAN.info {
+H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
   float: right;
   font-size: 100%;
 }
 
 H2.title, H3.title {
   border-bottom: solid 2pt #000000;
   float: right;
   font-size: 100%;
 }
 
 H2.title, H3.title {
   border-bottom: solid 2pt #000000;
-  page-break-before: always;
 }
 
 DT {
 }
 
 DT {
@@ -134,7 +133,7 @@ DL.category DT {
 }
 
 P.summary {
 }
 
 P.summary {
-  margin-left: 54pt;
+  margin-left: 36pt;
   font-family: monospace;
 }
 
   font-family: monospace;
 }
 
index 292e170f7b0dcaf9320f87fe72c2f84460057a72..026042412efa6ad176c780448836df1c2542928b 100644 (file)
@@ -173,7 +173,7 @@ SPAN.info {
   white-space: nowrap;
 }
 
   white-space: nowrap;
 }
 
-H2 SPAN.info, H3 SPAN.info {
+H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
   float: right;
   font-size: 100%;
 }
   float: right;
   font-size: 100%;
 }
@@ -196,9 +196,10 @@ DIV.sidebar {
   background: #ddddaa;
   border: solid 2px #cccc99;
   float: right;
   background: #ddddaa;
   border: solid 2px #cccc99;
   float: right;
+  min-width: 25%;
   margin-left: 10pt;
   margin-left: 10pt;
+  max-width: 33%;
   padding: 5pt;
   padding: 5pt;
-  width: 25%;
   /* These are not implemented by all browsers, but that's OK */
   border-radius: 10pt;
   -moz-border-radius: 10pt;
   /* These are not implemented by all browsers, but that's OK */
   border-radius: 10pt;
   -moz-border-radius: 10pt;
@@ -254,7 +255,7 @@ DL.category DT {
 }
 
 P.summary {
 }
 
 P.summary {
-  margin-left: 54pt;
+  margin-left: 36pt;
   font-family: monospace;
 }
 
   font-family: monospace;
 }
 
index bca5a1cef97e75f998373ebf08cc450de4d9d779..09c7749494bba213c8857debf97117be24528073 100644 (file)
@@ -62,7 +62,7 @@ BORDER="0" ALT=""></A>
 
 <P>Estas p&aacute;ginas web permiten monitorizar sus impresoras y trabajos
 as&iacute; como realizar tareas de administraci&oacute;n del sistema.
 
 <P>Estas p&aacute;ginas web permiten monitorizar sus impresoras y trabajos
 as&iacute; como realizar tareas de administraci&oacute;n del sistema.
-Haga click en cualquiera de las pesta&ntilde;as de la parte superior o en los
+Haga clic en cualquiera de las pesta&ntilde;as de la parte superior o en los
 botones de la parte inferior para realizar la tarea correspondiente.</P>
 
 <P>
 botones de la parte inferior para realizar la tarea correspondiente.</P>
 
 <P>
@@ -88,7 +88,7 @@ STYLE="padding-right: 10px;" ALT="Ordenador feliz e impresora">
 CUPS proporciona una capa de impresi&oacute;n portable 
 para sistemas operativos basados en
 UNIX<SUP>&reg;</SUP>. Est&aacute; desarrollado y mantenido
 CUPS proporciona una capa de impresi&oacute;n portable 
 para sistemas operativos basados en
 UNIX<SUP>&reg;</SUP>. Est&aacute; desarrollado y mantenido
-por <A HREF="http://www.apple.com">Apple Inc.</a> para favorecer una soluci&oacute;n de impresi&oacute;n
+por <A HREF="http://www.apple.com">Apple Inc.</A> para favorecer una soluci&oacute;n de impresi&oacute;n
 estandar. CUPS es el sistema de impresi&oacute;n estandar usado en
 MacOS<SUP>&reg;</SUP> X y la mayor&iacute;a de distribuciones
 Linux<SUP>&reg;</SUP>.</P>
 estandar. CUPS es el sistema de impresi&oacute;n estandar usado en
 MacOS<SUP>&reg;</SUP> X y la mayor&iacute;a de distribuciones
 Linux<SUP>&reg;</SUP>.</P>
index b8f420ddeb60ceecb89e46f51e4e23621f7cc4f0..6dd4e91f903db273bf54663a953c1c4abd740ee3 100644 (file)
@@ -4,31 +4,22 @@
 <head>
        <title>CUPS PPD Extensions</title>
        <meta name='keywords' content='Programming, PostScript Printer Description'>
 <head>
        <title>CUPS PPD Extensions</title>
        <meta name='keywords' content='Programming, PostScript Printer Description'>
-       <link rel='stylesheet' type='text/css' href='../cups.css'>
+       <link rel='stylesheet' type='text/css' href='../cups-printable.css'>
 </head>
 <body>
 <!--
 </head>
 <body>
 <!--
-  "$Id: spec-ppd.html 6726 2007-07-25 20:50:26Z mike $"
+  "$Id: spec-ppd.html 6850 2007-08-23 18:29:04Z mike $"
 
   CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
 
 
   CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
 
+  Copyright 2007 by Apple Inc.
   Copyright 1997-2007 by Easy Software Products.
 
   These coded instructions, statements, and computer programs are the
   Copyright 1997-2007 by Easy Software Products.
 
   These coded instructions, statements, and computer programs are the
-  property of Easy Software Products and are protected by Federal
-  copyright law.  Distribution and use rights are outlined in the file
-  "LICENSE.txt" which should have been included with this file.  If this
-  file is missing or damaged please contact Easy Software Products
-  at:
-
-      Attn: CUPS Licensing Information
-      Easy Software Products
-      44141 Airport View Drive, Suite 204
-      Hollywood, Maryland 20636 USA
-
-      Voice: (301) 373-9600
-      EMail: cups-info@cups.org
-        WWW: http://www.cups.org
+  property of Apple Inc. and are protected by Federal copyright
+  law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+  which should have been included with this file.  If this file is
+  file is missing or damaged, see the license at "http://www.cups.org/".
 -->
 
 <h2 class='title'><a name='INTRODUCTION'>Introduction</a></h2>
 -->
 
 <h2 class='title'><a name='INTRODUCTION'>Introduction</a></h2>
@@ -73,431 +64,401 @@ LINE-END = CR / LF / CR LF
 </pre>
 
 
 </pre>
 
 
-<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
+<h2 class='title'><a name='AUTOCONFIG'>Auto-Configuration</a></h2>
 
 
-<h3>APBookFile</h3>
+<p>CUPS supports several methods of auto-configuration via PPD attributes.
+<em>Currently these methods are only implemented on Mac OS X.</em></p>
 
 
-<p class='summary'>*APBookFile: "file URL"</p>
+<h3><span class='info'>Mac OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
 
 
-<p>This string attribute specifies the Apple help book file to use
-for this printer driver.</p>
+<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p>
 
 
-<p>Example:</p>
+<p>This attribute defines a program that sets the default option choices. It
+is run when a printer is added from the printer browser instead of the
+normal PostScript query and SNMP OID attribute lookups.</p>
+
+<p>The program is provided with two arguments: the printer's device URI and
+the PPD file to be used for the printer. The program must write an updated
+PPD file to stdout.</p>
+
+<p>Examples:</p>
 
 <pre class='command'>
 
 <pre class='command'>
-*APBookFile: "file:///Library/Printers/vendor/Help/filename"
+*% Use our setup tool when adding a printer
+*APAutoSetupTool: "/Library/Printers/vendor/Tools/autosetuptool"
 </pre>
 
 </pre>
 
-<h3>APDuplexRequiresFlippedMargin</h3>
+<h3><span class='info'>Mac OS X 10.2</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
 
 
-<p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
+<p class='summary'>*?<i>MainKeyword</i>: "<br>
+  PostScript query code that writes a message using the = operator...<br>
+"<br>
+*End</p>
 
 
-<p>This boolean attribute notifies the RIP filters that the
-destination printer does not require the top and bottom margins
-of the <tt>ImageableArea</tt> swapped for the back page. The
-default is <tt>true</tt> when <tt>cupsBackSide</tt> is <tt>Flipped</tt>
-and <tt>false</tt> otherwise.</p>
+<p>The <tt>?<i>MainKeyword</i><tt> attribute defines PostScript code that
+determines the currently selected/enabled option keyword (choice) for the
+main keyword (option). It is typically used when communicating with USB,
+serial, Appletalk, and AppSocket (port 9100) printers.</p>
+
+<p>The PostScript code typically sends its response back using the <tt>=</tt>
+operator.</p>
 
 <p>Example:</p>
 
 <pre class='command'>
 
 <p>Example:</p>
 
 <pre class='command'>
-<em>*% Flip the back side images</em>
-*cupsFlipDuplex: true
-
-<em>*% Don't swap the top and bottom margins for the back side</em> 
-*APDuplexRequiresFlippedMargin: false
+*OpenUI OptionDuplex/Duplexer Installed: Boolean
+*DuplexOptionDuplex: False
+*OptionDuplex False/Not Installed: ""
+*OptionDuplex True/Installed: ""
+
+<em>*% Query the printer for the presence of the duplexer option...</em>
+*?OptionDuplex: "
+  currentpagedevice /Duplex known
+  {(True)} {(False)} ifelse
+  = flush
+"
+*End
+*CloseUI: OptionDuplex
 </pre>
 
 </pre>
 
-<p>Also see the related <tt>cupsBackSide</tt> attribute.</p>
+<h3><span class='info'>Mac OS X 10.4</span><a name='OID'>OIDMainKeyword</a></h3>
 
 
-<h3>APPrinterPreset</h3>
+<p class='summary'>*?OID<i>MainKeyword</i>: ".n.n.n..."<br>
+*OID<i>MainKeyword</i> <i>OptionKeyword1</i>: "value"<br>
+...<br>
+*OID<i>MainKeyword</i> <i>OptionKeywordN</i>: "value"</p>
 
 
-<p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
-
-<p>This attribute defines presets for multiple options that show up
-in the print dialog on Mac OS X. Each preset maps to one or more
-pairs of PPD options and choices.</p>
+<p>The <tt>OID<i>MainKeyword</i></tt> attribute is used to define
+SNMP OIDs that map to installable options. The first (query) line
+defines the OID to lookup on the network device. The second and
+subsequent attributes define a mapping from OID value to option
+keyword. Since SNMP is an IP-based network protocol, this method
+is typically only used to configure AppSocket, IPP, and LPD network
+printers.</p>
 
 <p>Examples:</p>
 
 <pre class='command'>
 
 <p>Examples:</p>
 
 <pre class='command'>
-*APPrinterPreset Text/Text Printing on Plain Paper: "
-  *MediaType Plain
-  *ColorModel Gray
-  *Resolution 600dpi"
-*End
-
-*APPrinterPreset Photo/Photo Printing on Glossy Paper: "
-  *MediaType Glossy
-  *ColorModel RGB
-  *Resolution 300dpi"
-*End
+*% Get the installed memory on the printer...
+*?OIDInstalledMemory: ".1.3.6.1.2.1.25.2.2.0"
+*OIDInstalledMemory 16MB: "16384 KBytes"
+*OIDInstalledMemory 32MB: "32768 KBytes"
+*OIDInstalledMemory 48MB: "49152 KBytes"
+*OIDInstalledMemory 72MB: "73728 KBytes"
 </pre>
 
 </pre>
 
-<h3>APRemoteQueueID</h3>
 
 
-<p class='summary'>*APRemoteQueueID: "string"</p>
-
-<p>This string attribute notifies the scheduler that this PPD is for a remote CUPS printer, typically shared via Bonjour.</p>
+<h2 class='title'><a name='PROFILES'>Color Profiles</a></h2>
 
 
-<p>Example:</p>
+<p>CUPS supports three types of color profiles. The first type is
+based on sRGB and is used by the standard CUPS raster filters and
+ESP Ghostscript. The second type is based on ICC profiles and is
+used by the Quartz-based filters on MacOS X. The final type is
+based on well-known colorspaces such as sRGB and Adobe RGB.</p>
 
 
-<pre class='command'>
-*APRemoteQueueID: "myprinter"
-</pre>
+<blockquote><b>Note:</b>
 
 
-<h3><span class='info'>CUPS 1.3</span>cupsBackSide</h3>
+<p>At this time, none of the CUPS raster
+filters support ICC profiles. This will be addressed as time
+and resources permit.</p>
 
 
-<p class='summary'>*cupsBackSide: keyword</p>
+</blockquote>
 
 
-<p>This attribute requests special handling of the back side of pages
-when doing duplexed (2-sided) output. <a href='#TABLE_1'>Table 1</a>
-shows the supported keyword values for this attribute and their affect
-on the raster data sent to your driver. The default value is
-<code>Normal</code>.</p>
+<h3><a name='cupsColorProfile'>cupsColorProfile</a></h3>
 
 
-<blockquote><b>Note:</b> <tt>cupsBackSide</tt> replaces the older
-<tt>cupsFlipDuplex</tt> attribute - if <tt>cupsBackSide</tt> is
-specified, <tt>cupsFlipDuplex</tt> will be ignored.</blockquote>
+<p class='summary'>*cupsColorProfile Resolution/MediaType: "density
+gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
 
 
-<div class='table'>
-<table width='80%' summary='Back Side Raster Coordinate System'>
-<caption>Table 1: <a name='TABLE_1'>Back Side Raster Coordinate System</a></caption>
-<thead>
-<tr>
-       <th>cupsBackSide</th>
-       <th>Tumble Value</th>
-       <th>Image Presentation</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-       <td><code>Normal</code></td>
-       <td><code>false</code></td>
-       <td>Left-to-right, top-to-bottom</td>
-</tr>
-<tr>
-       <td><code>Normal</code></td>
-       <td><code>true</code></td>
-       <td>Left-to-right, top-to-bottom</td>
-</tr>
-<tr>
-       <td><code>ManualTumble</code></td>
-       <td><code>false</code></td>
-       <td>Left-to-right, top-to-bottom</td>
-</tr>
-<tr>
-       <td><code>ManualTumble</code></td>
-       <td><code>true</code></td>
-       <td>Right-to-left, bottom-to-top</td>
-</tr>
-<tr>
-       <td><code>Rotated</code></td>
-       <td><code>false</code></td>
-       <td>Right-to-left, bottom-to-top</td>
-</tr>
-<tr>
-       <td><code>Rotated</code></td>
-       <td><code>true</code></td>
-       <td>Right-to-left, top-to-bottom</td>
-</tr>
-<tr>
-       <td><code>Flipped</code> *</td>
-       <td><code>false</code></td>
-       <td>Left-to-right, bottom-to-top</td>
-</tr>
-<tr>
-       <td><code>Flipped</code> *</td>
-       <td><code>true</code></td>
-       <td>Right-to-left, top-to-bottom</td>
-</tr>
-</tbody>
-</table>
-</div>
+<p>This string attribute specifies an sRGB-based color profile
+consisting of gamma and density controls and a 3x3 CMY color
+transform matrix.</p>
 
 
-<p><em>* - Not supported in Mac OS X 10.5.x and earlier</em></p>
+<p>The <i>Resolution</i> and <i>MediaType</i> values may be "-"
+to act as a wildcard. Otherwise they must match one of the
+<tt>Resolution</tt> or <tt>MediaType</tt> attributes defined in
+the PPD file.</p>
 
 
-<p>Examples:</p>
+<p>The <i>density</i> and <i>gamma</i> values define gamma and
+density adjustment function such that:</p>
 
 <pre class='command'>
 
 <pre class='command'>
-<em>*% Flip the page image for the back side of duplexed output</em> 
-*cupsBackSide: Flipped
-
-<em>*% Rotate the page image for the back side of duplexed output</em> 
-*cupsBackSide: Rotated
+f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </pre>
 
 </pre>
 
-<p>Also see the related <tt>APDuplexRequiresFlippedMargin</tt>
-attribute.</p>
+<p>The <i>m00</i> through <i>m22</i> values define a 3x3
+transformation matrix for the CMY color values. The density
+function is applied <i>after</i> the CMY transformation:</p>
 
 
-<h3>cupsEvenDuplex</h3>
+<pre class='command'>
+| m00 m01 m02 |
+| m10 m11 m12 |
+| m20 m21 m22 |
+</pre>
 
 
-<p class='summary'>*cupsEvenDuplex: boolean</p>
+<p>Examples:</p>
 
 
-<p>This boolean attribute notifies the RIP filters that the
-destination printer requires an even number of pages when 2-sided
-printing is selected. The default value is <code>false</code>.</p>
+<pre class='command'>
+<em>*% Specify a profile for printing at 360dpi on all media types</em> 
+*cupsColorProfile 360dpi/-: "1.0 1.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
 
 
-<p>Example:</p>
+<em>*% Specify a profile for printing at 720dpi on Glossy media</em> 
+*cupsColorProfile 720dpi/Glossy: "1.0 2.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
 
 
-<pre class='command'>
-<em>*% Always send an even number of pages when duplexing</em> 
-*cupsEvenDuplex: true
+<em>*% Specify a default profile for printing at all other resolutions and media types</em> 
+*cupsColorProfile -/-: "0.9 2.0 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
 </pre>
 
 </pre>
 
-<h3>cupsFax</h3>
+<h3><span class='info'>Mac OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
 
 
-<p class='summary'>*cupsFax: boolean</p>
+<p class='summary'>*cupsICCProfile
+ColorModel.MediaType.Resolution/Description: "filename"</p>
 
 
-<p>This boolean attribute specifies whether the PPD defines a facsimile device. The default is <tt>false</tt>.</p>
+<p>This attribute specifies an ICC color profile that is
+used to convert the document colors to the device
+colorspace. The <tt>ColorModel</tt>, <tt>MediaType</tt>, and
+<tt>Resolution</tt> keywords specify a selector for color
+profiles. If omitted, the color profile will match any option
+keyword for the corresponding main keyword.</p>
+
+<p>The <tt>Description</tt> specifies human-readable text that
+is associated with the color profile. The <tt>filename</tt>
+portion specifies the ICC color profile to use; if the filename
+is not absolute, it is loaded relative to the
+<var>/usr/share/cups/profiles</var> directory.</p>
 
 <p>Examples:</p>
 
 <pre class='command'>
 
 <p>Examples:</p>
 
 <pre class='command'>
-*cupsFax: true
-</pre>
+<em>*% Specify a profile for CMYK printing at 360dpi on all media types</em> 
+*cupsICCProfile CMYK..360dpi/360dpi CMYK: "/Library/Printers/vendor/Profiles/foo-360-cmyk.icc"
 
 
-<h3>cupsFilter</h3>
+<em>*% Specify a profile for RGB printing at 720dpi on Glossy media</em> 
+*cupsColorProfile RGB.Glossy.720dpi/720dpi Glossy: "/Library/Printers/vendor/Profiles/foo-720-glossy-rgb.icc"
 
 
-<p class='summary'>*cupsFilter: "source/type cost program"</p>
+<em>*% Specify a default profile for printing at all other resolutions and media types</em> 
+*cupsICCProfile ../Default: "/Library/Printers/vendor/Profiles/foo-default.icc"
+</pre>
 
 
-<p>This string attribute provides a conversion rule from the
-given source type to the printer's native format using the
-filter "program". If a printer supports the source type directly,
-the special filter program "-" may be specified.</p>
+<h4>Customizing the Profile Selection Keywords</h4>
 
 
-<p>Examples:</p>
+<p>The <tt>MediaType</tt> and <tt>Resolution</tt> keywords can be
+reassigned to different main keywords, allowing drivers to do
+color profile selection based on different parameters. The
+<tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt>
+attributes define the mapping from selector to main keyword:</p>
 
 <pre class='command'>
 
 <pre class='command'>
-<em>*% Standard raster printer driver filter</em> 
-*cupsFilter: "application/vnd.cups-raster 100 rastertofoo"
+*cupsICCQualifier2: MainKeyword2
+*cupsICCQualifier3: MainKeyword3
+</pre>
 
 
-<em>*% Plain text filter</em> 
-*cupsFilter: "text/plain 10 texttofoo"
+<p>The default mapping is as follows:</p>
 
 
-<em>*% Pass-through filter for PostScript printers</em> 
-*cupsFilter: "application/vnd.cups-postscript 0 -"
+<pre class='command'>
+*cupsICCQualifier2: MediaType
+*cupsICCQualifier3: Resolution
 </pre>
 
 </pre>
 
-<h3><span class='info'>Deprecated</span>cupsFlipDuplex</h3>
+<h3><span class='info'>Mac OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
 
 
-<p class='summary'>*cupsFlipDuplex: boolean</p>
+<p class='summary'>*<a href='#APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a>: true<br>
+*<a href='#APCustomColorMatchingName'>APCustomColorMatchingName</a> name/text: ""<br>
+*<a href='#APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a>: profile<br>
+*<a href='#APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a>: profile</p>
 
 
-<p>Due to implementation differences between Mac OS X and Ghostscript,
-the <tt>cupsFlipDuplex</tt> attribute is deprecated. Instead, use
-the <tt>cupsBackSide</tt> attribute to specify the coordinate
-system (pixel layout) of the page data on the back side of duplex
-pages.</p>
+<p>These attributes tell the Mac OS X raster filters that the printer
+driver provides its own custom color matching and that generic color
+profiles should be used when generating 1-, 3-, and 4-component raster
+data as requested by the driver. The <tt>APCustomColorMatchingProfile</tt>
+and <tt>APDefaultColorMatchingProfile</tt> attributes specify alternate
+color profiles (sRGB or AdobeRGB) to use for 3-color (RGB) raster data.</p>
 
 
-<p>The value <code>true</code> maps to a <tt>cupsBackSide</tt> value
-of <code>Rotated</code> on Mac OS X and <code>Flipped</code> with
-Ghostscript.</p>
+<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
 
 
-<p>The default value is <code>false</code>.</p>
+<p class='summary'>*APCustomColorMatchingName name/text: ""</p>
 
 
-<blockquote><b>Note:</b> Mac OS X drivers that previously used
-<tt>cupsFlipDuplex</tt> may wish to provide both the old and
-new attributes for maximum compatibility, for example:
+<p>This attribute defines an alternate name for the color matching
+provided by a driver in the <var>Color Matching</var> print panel.
+The default is to use the name "Vendor Matching" or its localized
+equivalent.</p>
+
+<p>Examples:</p>
 
 <pre class='command'>
 
 <pre class='command'>
-*cupsBackSide: Rotated
-*cupsFlipDuplex: true
+*% Define the names for our color matching...
+*APCustomColorMatchingName name/AcmeColor(tm): ""
+*fr.APCustomColorMatchingName name/La AcmeColor(tm): ""
 </pre>
 
 </pre>
 
-Similarly, drivers written for other operating systems using
-Ghostscript can use:
+<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
 
 
-<pre class='command'>
-*cupsBackSide: Flipped
-*cupsFlipDuplex: true
-</pre></blockquote>
+<p class='summary'>*APCustomColorMatchingProfile: name</p>
 
 
-<h3>cupsIPPFinishings</h3>
+<p>This attribute defines a supported RGB color profile that can be used
+when doing custom color matching. Currently only <tt>sRGB</tt> and
+<tt>AdobeRGB</tt> are supported. If not specified, RGB data will use the
+Generic RGB colorspace.</p>
 
 
-<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
+<blockquote><b>Note:</b>
 
 
-<p>This attribute defines a mapping from IPP <code>finishings</code>
-values to PPD options and choices.</p>
+<p>If you provide multiple <tt>APCustomColorMatchingProfile</tt> attributes,
+you are responsible for providing the necessary user interface controls to
+select the profile in a <a href='#APDialogExtension'>print dialog pane</a>.
+Add the named profile to the print settings using the key
+<tt>kPMCustomColorMatchingProfileKey</tt>.</p>
+
+</blockquote>
 
 <p>Examples:</p>
 
 <pre class='command'>
 
 <p>Examples:</p>
 
 <pre class='command'>
-*cupsIPPFinishings 4/staple: "*StapleLocation SinglePortrait"
-*cupsIPPFinishings 5/punch: "*PunchMedia Yes *PunchLocation LeftSide"
-*cupsIPPFinishings 20/staple-top-left: "*StapleLocation SinglePortrait"
-*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape"
+*% Use sRGB for RGB color by default, but support both sRGB and AdobeRGB
+*APSupportsCustomColorMatching: true
+*APDefaultCustomColorMatchingProfile: sRGB
+*APCustomColorMatchingProfile: sRGB
+*APCustomColorMatchingProfile: AdobeRGB
 </pre>
 
 </pre>
 
-<h3>cupsIPPReason</h3>
-
-<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
+<h4><span class='info'>Mac OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
 
 
-<p>This optional attribute maps custom
-<code>printer-state-reasons</code> keywords that are generated by
-the driver to human readable text. The optional URIs string
-contains zero or more URIs separated by a newline. Each URI can
-be a CUPS server absolute path to a help file under the
-scheduler's <code>DocumentRoot</code> directory, a full HTTP URL
-("http://www.domain.com/path/to/help/page.html"), or any other
-valid URI which directs the user at additional information
-concerning the condition that is being reported.</p>
+<p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
 
 
-<p>Since the reason text is limited to 80 characters by the PPD specification,
-longer text strings can be included by URI-encoding the text with the "text"
-scheme, for example "text:some%20text". Multiple <code>text</code> URIs are
-combined (with spaces between each URI) by the <tt>ppdLocalizeIPPReason</tt>
-into a single string that can be displayed to the user.</p>
+<p>This attribute defines the default RGB color profile that will be used
+when doing custom color matching. Currently only <tt>sRGB</tt> and
+<tt>AdobeRGB</tt> are supported.</p>
 
 <p>Examples:</p>
 
 <pre class='command'>
 
 <p>Examples:</p>
 
 <pre class='command'>
-<em>*% Map com.vendor-error to text but no page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: ""
-
-<em>*% Map com.vendor-error to more than 80 characters of text but no page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: "text:Now%20is%20the%20time
-text:for%20all%20good%20men%20to%20come%20to%20the%20aid%20of%20their%20country."
-
-<em>*% Map com.vendor-error to text and a local page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
-
-<em>*% Map com.vendor-error to text and a remote page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: "http://www.vendor.com/help"
-
-<em>*% Map com.vendor-error to text and a local, Apple help book, and remote page</em>
-*APHelpBook: "file:///Library/Printers/vendor/Help/filename"
-*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html
-help:anchor='com.vendor-error'%20bookID=Vendor%20Help
-http://www.vendor.com/help"
-*End
+*% Use sRGB for RGB color by default
+*APSupportsCustomColorMatching: true
+*APDefaultCustomColorMatchingProfile: sRGB
 </pre>
 
 </pre>
 
-<h3>cupsLanguages</h3>
+<h4><span class='info'>Mac OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
 
 
-<p class='summary'>*cupsLanguages: "locale list"</p>
+<p class='summary'>*APSupportsCustomColorMatching: boolean</p>
 
 
-<p>This attribute describes which language localizations are
-included in the PPD. The "locale list" string is a space-delimited
-list of locale names ("en", "en_US", "fr_CA", etc.)</p>
+<p>This attribute specifies that the driver provides its own custom color
+matching. When <tt>true</tt>, the default hand-off colorspace will be
+Generic Gray, Generic RGB, or Generic CMYK depending on the number of
+components the driver requests. The <a
+href='#APDefaultCustomColorMatchingProfile'><tt>APDefaultCustomColorMatchingProfile</tt></a>
+attribute can be used to override the default 3-component (RGB) colorspace.</p>
 
 
-<p>Example:</p>
+<p>The default for <tt>APSupportsCustomColorMatching</tt> is <tt>false</tt>.</p>
+
+<p>Examples:</p>
 
 <pre class='command'>
 
 <pre class='command'>
-<em>*% Specify Canadian, UK, and US English, and Candian and French French</em> 
-*cupsLanguages: "en_CA en_UK en_US fr_CA fr_CA"
+*APSupportsCustomColorMatching: true
+*APDefaultCustomColorMatchingProfile: sRGB
 </pre>
 
 </pre>
 
-<h3>cupsManualCopies</h3>
 
 
-<p class='summary'>*cupsManualCopies: boolean</p>
+<h2 class='title'><a name='I18N'>Globalized PPD Support</a></h2>
 
 
-<p>This boolean attribute notifies the RIP filters that the
-destination printer does not support copy generation in
-hardware. The default value is <code>false</code>.</p>
-
-<p>Example:</p>
-
-<pre class='command'>
-<em>*% Tell the RIP filters to generate the copies for us</em> 
-*cupsManualCopies: true
-</pre>
+<p>CUPS 1.2 and higher adds support for PPD files containing multiple
+languages by following the following additional rules:</p>
 
 
-<h3>cupsModelNumber</h3>
+<ol>
 
 
-<p class='summary'>*cupsModelNumber: number</p>
+       <li>The <tt>LanguageVersion</tt> MUST be <tt>English</tt></li>
 
 
-<p>This integer attribute specifies a printer-specific model
-number. This number can be used by a filter program to adjust
-the output for a specific model of printer.</p>
+       <li>The <tt>LanguageEncoding</tt> MUST be <tt>ISOLatin1</tt></li>
 
 
-<p>Example:</p>
+       <li>The <tt>cupsLanguages</tt> attribute MUST be provided and
+       list each of the supported locales in the PPD file</li>
 
 
-<pre class='command'>
-<em>*% Specify an integer for a driver-specific model number</em> 
-*cupsModelNumber: 1234
-</pre>
+       <li>Main and option keywords MUST NOT exceed 34 (instead of 40)
+       characters to allow room for the locale prefixes in translation
+       attributes</li>
 
 
+       <li>The main keyword "Translation" MUST NOT be used</li>
 
 
-<h3>cupsPJLCharset</h3>
+       <li>Translation strings included with the main and option
+       keywords MUST NOT contain characters outside the ASCII
+       subset of ISOLatin1 and UTF-8; developers wishing to use
+       characters outside ASCII MUST provide a separate set of
+       English localization attributes for the affected keywords.</li>
 
 
-<p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
+       <li>Localizations are specified using a locale prefix of
+       the form "ll" or "ll_CC." where "ll" is the 2-letter ISO
+       language code and "CC" is the 2-letter ISO country
+       code<ul>
+               <li>A generic language translation ("ll") SHOULD be provided with country-specific differences ("ll_CC") provided only as needed</li>
+               <li>For historical reasons, the "zh" and "zh_CN" locales map to Simplified Chinese while the "zh_TW" locale maps to Traditional Chinese</li>
+       </ul></li>
 
 
-<p>This string attribute specifies the character set that is used
-for strings in PJL commands. If not specified, US-ASCII is
-assumed.</p>
+       <li>Locale-specific translation strings MUST be encoded
+       using UTF-8.</li>
 
 
-<p>Example:</p>
+       <li>Main keywords MUST be localized using one of the
+       following forms:
+       <p><tt>*ll.Translation MainKeyword/translation
+       text: ""</tt><br />
+       <tt>*ll_CC.Translation MainKeyword/translation
+       text: ""</tt></p></li>
 
 
-<pre class='command'>
-<em>*% Specify UTF-8 is used in PJL strings</em>
-*cupsPJLCharset: "UTF-8"
-</pre>
+       <li>Option keywords MUST be localized using one of the
+       following forms:
+       <p><tt>*ll.MainKeyword OptionKeyword/translation
+       text: ""</tt><br />
+       <tt>*ll_CC.MainKeyword OptionKeyword/translation
+       text: ""</tt></p></li>
 
 
+       <li>Localization attributes MAY appear anywhere after the
+       first line of the PPD file</li>
 
 
-<h3>cupsPortMonitor</h3>
+</ol>
 
 
-<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
+<blockquote><b>Note:</b>
 
 
-<p>This string attribute specifies printer-specific "port
-monitor" filters that may be used with the printer. The CUPS
-scheduler also looks for the <tt>Protocols</tt> attribute to see
-if the <tt>BCP</tt> or <tt>TBCP</tt> protocols are supported. If
-so, the corresponding port monitor ("bcp" and "tbcp",
-respectively) is listed in the printer's
-<tt>port-monitor-supported</tt> attribute.</p>
+<p>We use a <tt>LanguageEncoding</tt> value of <tt>ISOLatin1</tt>
+and limit the allowed base translation strings to ASCII to avoid
+character coding issues that would otherwise occur. In addition,
+requiring the base translation strings to be in English allows
+for easier fallback translation when no localization is provided
+in the PPD file for a given locale.</p>
 
 
-<p>The "urischeme" portion of the attribute specifies the URI scheme
-that this port monitor should be used for. Typically this is used to
-pre-select a particular port monitor for each type of connection that
-is supported by the printer. The "port monitor" string can be "none"
-to disable the port monitor for the given URI scheme.</p>
+</blockquote>
 
 <p>Examples:</p>
 
 <pre class='command'>
 
 <p>Examples:</p>
 
 <pre class='command'>
-<em>*% Specify a PostScript printer that supports the TBCP protocol</em>
-*Protocols: TBCP PJL
-
-<em>*% Specify that TBCP should be used for socket connections but not USB</em>
-*cupsPortMonitor socket/AppSocket Printing: "tbcp"
-*cupsPortMonitor usb/USB Printing: "none"
-
-<em>*% Specify a printer-specific port monitor for an Epson USB printer</em> 
-*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
-</pre>
-
-<h3>cupsPreFilter</h3>
-
-<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*cupsLanguages: "de fr_CA"
+*ModelName: "Foobar Laser 9999"
 
 
-<p>This string attribute provides a pre-filter rule. The pre-filter
-program will be inserted in the conversion chain immediately 
-before the filter that accepts the given MIME type.</p>
+<em>*% Localize ModelName for French and German</em>
+*fr_CA.Translation ModelName/La Foobar Laser 9999: ""
+*de.Translation ModelName/Foobar LaserDrucken 9999: ""
 
 
-<p>Examples:</p>
+*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
+<em>*% Localize printer-state-reason for French and German</em>
+*fr_CA.cupsIPPReason com.vendor-error/Une erreur s&egrave;rieuse s'est produite: "/help/com.vendor/error.html"
+*de.cupsIPPReason com.vendor-error/Eine ernste St&ouml;rung trat: "/help/com.vendor/error.html"
 
 
-<pre class='command'>
-<em>*% PDF pre-filter</em>
-*cupsPreFilter: "application/pdf 100 mypdfprefilter"
+...
 
 
-<em>*% PNG pre-filter</em>
-*cupsPreFilter: "image/png 0 mypngprefilter"
+*OpenUI *InputSlot/Paper Source: PickOne
+*OrderDependency: 10 AnySetup *InputSlot
+*DefaultInputSlot: Auto
+<em>*% Localize InputSlot for French and German</em>
+*fr_CA.Translation InputSlot/Papier source: ""
+*de.Translation InputSlot/Papiereinzug: ""
+*InputSlot Auto/Default: "&lt;&lt;/ManualFeed false&gt;&gt;setpagedevice"
+<em>*% Localize InputSlot=Auto for French and German</em>
+*fr_CA.InputSlot Auto/Par Defaut: ""
+*de.InputSlot Auto/Standard: ""
+*InputSlot Manual/Manual Feed: "&lt;&lt;/ManualFeed true&gt;&gt;setpagedevice"
+<em>*% Localize InputSlot=Manual for French and German</em>
+*fr_CA.InputSlot Manual/Manuel mecanisme de alimentation: ""
+*de.InputSlot Manual/Manueller Einzug: ""
+*CloseUI: *InputSlot
 </pre>
 
 </pre>
 
-<h3>cupsVersion</h3>
-
-<p class='summary'>*cupsVersion: major.minor</p>
-
-<p>This required attribute describes which version of the CUPS
-PPD file extensions was used. Currently it must be the string
-"1.0", "1.1", or "1.2".</p>
-
-<p>Example:</p>
-
-<pre class='command'>
-<em>*% Specify a CUPS 1.2 driver</em> 
-*cupsVersion: "1.2"
-</pre>
 
 <h2 class='title'><a name='OPTIONS'>Custom Options</a></h2>
 
 
 <h2 class='title'><a name='OPTIONS'>Custom Options</a></h2>
 
@@ -566,6 +527,15 @@ option value is "2.0" then CUPS will output the string
 
 </ul>
 
 
 </ul>
 
+<blockquote><b>Note:</b>
+
+<p>Custom options are not directly supported by the Mac OS X Print Dialog
+nor by the CUPS web interface at this time. Vendors that use custom
+options on Mac OS X must provide their own user interface via the
+<a href='#APDialogExtension'><tt>APDialogExtension</tt></a> attribute.</p>
+
+</blockquote>
+
 <p>Examples:</p>
 
 <pre class='command'>
 <p>Examples:</p>
 
 <pre class='command'>
@@ -613,285 +583,86 @@ option value is "2.0" then CUPS will output the string
 </pre>
 
 
 </pre>
 
 
-<h2 class='title'><a name='PROFILES'>Color Profiles</a></h2>
-
-<p>CUPS supports two types of color profiles. The first type is
-based on sRGB and is used by the standard CUPS raster filters and
-ESP Ghostscript. The second type is based on ICC profiles and is
-used by the Core Graphics-based filters on MacOS X.</p>
-
-<blockquote><b>Note:</b> At this time, none of the CUPS raster
-filters support ICC profiles. This will be addressed as time
-and resources permit.</blockquote>
+<h2 class='title'><a name='RASTERPS'>Writing PostScript Option Commands for Raster Drivers</a></h2>
 
 
-<h3>cupsColorProfile</h3>
+<p>PPD files are used for both PostScript and non-PostScript printers. For CUPS raster drivers, you use a subset of the PostScript language to set page device attributes such as page size, resolution, and so forth. For example, the following code sets the page size to A4 size:</p>
 
 
-<p class='summary'>*cupsColorProfile Resolution/MediaType: "density
-gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
+<pre class='command'>
+*PageSize A4: "&lt;&lt;/PageSize[595 842]&gt;&gt;setpagedevice"
+</pre>
 
 
-<p>This string attribute specifies an sRGB-based color profile
-consisting of gamma and density controls and a 3x3 CMY color
-transform matrix.</p>
+<p>Custom options typically use other operators to organize the values into a key/value dictionary for <tt>setpagedevice</tt>. For example, our previous <tt>CustomWatermarkText</tt> option code uses the <tt>roll</tt> operator to move the custom string value into the dictionary for <tt>setpagedevice</tt>:</p>
 
 
-<p>The <i>Resolution</i> and <i>MediaType</i> values may be "-"
-to act as a wildcard. Otherwise they must match one of the
-<tt>Resolution</tt> or <tt>MediaType</tt> attributes defined in
-the PPD file.</p>
+<pre class='command'>
+*CustomWatermarkText True: "&lt;&lt;/cupsString1 3 -1 roll&gt;&gt;setpagedevice"
+</pre>
 
 
-<p>The <i>density</i> and <i>gamma</i> values define gamma and
-density adjustment function such that:</p>
+<p>For a custom string value of "My Watermark", CUPS will produce the following PostScript code for the option:</p>
 
 <pre class='command'>
 
 <pre class='command'>
-f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
+(My Watermark)
+&lt;&lt;/cupsString1 3 -1 roll&gt;&gt;setpagedevice
 </pre>
 
 </pre>
 
-<p>The <i>m00</i> through <i>m22</i> values define a 3x3
-transformation matrix for the CMY color values. The density
-function is applied <i>after</i> the CMY transformation:</p>
+<p>The code moves the string value ("My Watermark") from the bottom of the stack to the top, creating a dictionary that looks like:</p>
 
 <pre class='command'>
 
 <pre class='command'>
-| m00 m01 m02 |
-| m10 m11 m12 |
-| m20 m21 m22 |
+&lt;&lt;/cupsString1(My Watermark)&gt;&gt;setpagedevice
 </pre>
 
 </pre>
 
-<p>Examples:</p>
+<p>The resulting dictionary sets the page device attributes that are sent to your raster driver in the page header.</p>
 
 
-<pre class='command'>
-<em>*% Specify a profile for printing at 360dpi on all media types</em> 
-*cupsColorProfile 360dpi/-: "1.0 1.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
+<h3>Custom Page Size Code</a></h3>
 
 
-<em>*% Specify a profile for printing at 720dpi on Glossy media</em> 
-*cupsColorProfile 720dpi/Glossy: "1.0 2.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
+<p>There are many possible implementations of the <tt>CustomPageSize</tt> code. For CUPS raster drivers, the following code is recommended:</p>
 
 
-<em>*% Specify a default profile for printing at all other resolutions and media types</em> 
-*cupsColorProfile -/-: "0.9 2.0 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
+<pre class='command'>
+*ParamCustomPageSize Width:        1 points <i>min-width max-width</i>
+*ParamCustomPageSize Height:       2 points <i>min-height max-height</i>
+*ParamCustomPageSize WidthOffset:  3 points 0 0
+*ParamCustomPageSize HeightOffset: 4 points 0 0
+*ParamCustomPageSize Orientation:  5 int 0 0
+*CustomPageSize True: "pop pop pop &lt;&lt;/PageSize[5 -2 roll]/ImagingBBox null&gt;&gt;setpagedevice"
 </pre>
 
 </pre>
 
-<h3>cupsICCProfile</h3>
+<h3>Supported PostScript Operators</a></h3>
 
 
-<p class='summary'>*cupsICCProfile
-ColorModel.MediaType.Resolution/Description: "filename"</p>
+<p>CUPS supports the following PostScript operators in addition to the usual PostScript number, string (literal and hex-encoded), boolean, null, and name values:</p>
 
 
-<p>This attribute specifies an ICC color profile that is
-used to convert the document colors to the device
-colorspace. The <tt>ColorModel</tt>, <tt>MediaType</tt>, and
-<tt>Resolution</tt> keywords specify a selector for color
-profiles. If omitted, the color profile will match any option
-keyword for the corresponding main keyword.</p>
+<ul>
 
 
-<p>The <tt>Description</tt> specifies human-readable text that
-is associated with the color profile. The <tt>filename</tt>
-portion specifies the ICC color profile to use; if the filename
-is not absolute, it is loaded relative to the
-<var>/usr/share/cups/profiles</var> directory.</p>
+       <li><tt>&lt;&lt;</tt> - Start a dictionary.</li>
 
 
-<p>Examples:</p>
+       <li><tt>&gt;&gt;</tt> - End a dictionary.</li>
 
 
-<pre class='command'>
-<em>*% Specify a profile for CMYK printing at 360dpi on all media types</em> 
-*cupsICCProfile CMYK..360dpi/360dpi CMYK: "vendor/foo-360-cmyk.icc"
+       <li><tt>[</tt> - Start an array.</li>
 
 
-<em>*% Specify a profile for RGB printing at 720dpi on Glossy media</em> 
-*cupsColorProfile RGB.Glossy.720dpi/720dpi Glossy: "vendor/foo-720-glossy-rgb.icc"
+       <li><tt>]</tt> - End an array.</li>
 
 
-<em>*% Specify a default profile for printing at all other resolutions and media types</em> 
-*cupsICCProfile ../Default: "vendor/foo-default.icc"
-</pre>
+       <li><tt>copy</tt> - Copy the top N objects on the stack.</li>
 
 
-<h4>Customizing the Profile Selection Keywords</h4>
+       <li><tt>dup</tt> - Copy the top object on the stack.</li>
 
 
-<p>The <tt>MediaType</tt> and <tt>Resolution</tt> keywords can be
-reassigned to different main keywords, allowing drivers to do
-color profile selection based on different parameters. The
-<tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt>
-attributes define the mapping from selector to main keyword:</p>
+       <li><tt>index</tt> - Copy the Nth from the top object on the stack.</li>
 
 
-<pre class='command'>
-*cupsICCQualifier2: MainKeyword2
-*cupsICCQualifier3: MainKeyword3
-</pre>
+       <li><tt>pop</tt> - Pop the top object on the stack.</li>
 
 
-<p>The default mapping is as follows:</p>
+       <li><tt>roll</tt> - Shift the top N objects on the stack.</li>
 
 
-<pre class='command'>
-*cupsICCQualifier2: MediaType
-*cupsICCQualifier3: Resolution
-</pre>
+       <li><tt>setpagedevice</tt> - Set the page header values according to the key/value dictionary on the stack.</li>
 
 
+</ul>
 
 
-<h2 class='title'><a name='I18N'>Globalized PPD Support</a></h2>
+<blockquote><b>Note:</b>
 
 
-<p>CUPS 1.2 and higher adds support for PPD files containing multiple
-languages by following the following additional rules:</p>
-
-<ol>
-
-       <li>The <tt>LanguageVersion</tt> MUST be <tt>English</tt></li>
-
-       <li>The <tt>LanguageEncoding</tt> MUST be <tt>ISOLatin1</tt></li>
-
-       <li>The <tt>cupsLanguages</tt> attribute MUST be provided and
-       list each of the supported locales in the PPD file</li>
-
-       <li>Main and option keywords MUST NOT exceed 34 (instead of 40)
-       characters to allow room for the locale prefixes in translation
-       attributes</li>
-
-       <li>The main keyword "Translation" MUST NOT be used</li>
-
-       <li>Translation strings included with the main and option
-       keywords MUST NOT contain characters outside the ASCII
-       subset of ISOLatin1 and UTF-8; developers wishing to use
-       characters outside ASCII MUST provide a separate set of
-       English localization attributes for the affected keywords.</li>
-
-       <li>Localizations are specified using a locale prefix of
-       the form "ll" or "ll_CC." where "ll" is the 2-letter ISO
-       language code and "CC" is the 2-letter ISO country
-       code<ul>
-               <li>A generic language translation ("ll") SHOULD be provided with country-specific differences ("ll_CC") provided only as needed</li>
-               <li>For historical reasons, the "zh" and "zh_CN" locales map to Simplified Chinese while the "zh_TW" locale maps to Traditional Chinese</li>
-       </ul></li>
-
-       <li>Locale-specific translation strings MUST be encoded
-       using UTF-8.</li>
-
-       <li>Main keywords MUST be localized using one of the
-       following forms:
-       <p><tt>*ll.Translation MainKeyword/translation
-       text: ""</tt><br />
-       <tt>*ll_CC.Translation MainKeyword/translation
-       text: ""</tt></p></li>
-
-       <li>Option keywords MUST be localized using one of the
-       following forms:
-       <p><tt>*ll.MainKeyword OptionKeyword/translation
-       text: ""</tt><br />
-       <tt>*ll_CC.MainKeyword OptionKeyword/translation
-       text: ""</tt></p></li>
-
-       <li>Localization attributes MAY appear anywhere after the
-       first line of the PPD file</li>
-
-</ol>
-
-<blockquote><b>Note:</b>
-We use a <tt>LanguageEncoding</tt> value of <tt>ISOLatin1</tt>
-and limit the allowed base translation strings to ASCII to avoid
-character coding issues that would otherwise occur. In addition,
-requiring the base translation strings to be in English allows
-for easier fallback translation when no localization is provided
-in the PPD file for a given locale.</blockquote>
-
-<p>Examples:</p>
-
-<pre class='command'>
-*LanguageVersion: English
-*LanguageEncoding: ISOLatin1
-*cupsLanguages: "de fr_CA"
-*ModelName: "Foobar Laser 9999"
-
-<em>*% Localize ModelName for French and German</em>
-*fr_CA.Translation ModelName/La Foobar Laser 9999: ""
-*de.Translation ModelName/Foobar LaserDrucken 9999: ""
-
-*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
-<em>*% Localize printer-state-reason for French and German</em>
-*fr_CA.cupsIPPReason com.vendor-error/Une erreur s&egrave;rieuse s'est produite: "/help/com.vendor/error.html"
-*de.cupsIPPReason com.vendor-error/Eine ernste St&ouml;rung trat: "/help/com.vendor/error.html"
-
-...
-
-*OpenUI *InputSlot/Paper Source: PickOne
-*OrderDependency: 10 AnySetup *InputSlot
-*DefaultInputSlot: Auto
-<em>*% Localize InputSlot for French and German</em>
-*fr_CA.Translation InputSlot/Papier source: ""
-*de.Translation InputSlot/Papiereinzug: ""
-*InputSlot Auto/Default: "&lt;&lt;/ManualFeed false&gt;&gt;setpagedevice"
-<em>*% Localize InputSlot=Auto for French and German</em>
-*fr_CA.InputSlot Auto/Par Defaut: ""
-*de.InputSlot Auto/Standard: ""
-*InputSlot Manual/Manual Feed: "&lt;&lt;/ManualFeed true&gt;&gt;setpagedevice"
-<em>*% Localize InputSlot=Manual for French and German</em>
-*fr_CA.InputSlot Manual/Manuel mecanisme de alimentation: ""
-*de.InputSlot Manual/Manueller Einzug: ""
-*CloseUI: *InputSlot
-</pre>
-
-
-<h2 class='title'><a name='RASTERPS'>Writing PostScript Option Commands for Raster Drivers</a></h2>
-
-<p>PPD files are used for both PostScript and non-PostScript printers. For CUPS raster drivers, you use a subset of the PostScript language to set page device attributes such as page size, resolution, and so forth. For example, the following code sets the page size to A4 size:</p>
-
-<pre class='command'>
-*PageSize A4: "&lt;&lt;/PageSize[595 842]&gt;&gt;setpagedevice"
-</pre>
-
-<p>Custom options typically use other operators to organize the values into a key/value dictionary for <tt>setpagedevice</tt>. For example, our previous <tt>CustomWatermarkText</tt> option code uses the <tt>roll</tt> operator to move the custom string value into the dictionary for <tt>setpagedevice</tt>:</p>
-
-<pre class='command'>
-*CustomWatermarkText True: "&lt;&lt;/cupsString1 3 -1 roll&gt;&gt;setpagedevice"
-</pre>
-
-<p>For a custom string value of "My Watermark", CUPS will produce the following PostScript code for the option:</p>
-
-<pre class='command'>
-(My Watermark)
-&lt;&lt;/cupsString1 3 -1 roll&gt;&gt;setpagedevice
-</pre>
-
-<p>The code moves the string value ("My Watermark") from the bottom of the stack to the top, creating a dictionary that looks like:</p>
-
-<pre class='command'>
-&lt;&lt;/cupsString1(My Watermark)&gt;&gt;setpagedevice
-</pre>
-
-<p>The resulting dictionary sets the page device attributes that are sent to your raster driver in the page header.</p>
-
-<h3>Custom Page Size Code</h3>
-
-<p>There are many possible implementations of the <tt>CustomPageSize</tt> code. For CUPS raster drivers, the following code is recommended:</p>
-
-<pre class='command'>
-*ParamCustomPageSize Width:        1 points <i>min-width max-width</i>
-*ParamCustomPageSize Height:       2 points <i>min-height max-height</i>
-*ParamCustomPageSize WidthOffset:  3 points 0 0
-*ParamCustomPageSize HeightOffset: 4 points 0 0
-*ParamCustomPageSize Orientation:  5 int 0 0
-*CustomPageSize True: "pop pop pop &lt;&lt;/PageSize[5 -2 roll]/ImagingBBox null&gt;&gt;setpagedevice"
-</pre>
-
-<h3>Supported PostScript Operators</h3>
-
-<p>CUPS supports the following PostScript operators in addition to the usual PostScript number, string (literal and hex-encoded), boolean, null, and name values:</p>
-
-<ul>
-
-       <li><tt>&lt;&lt;</tt> - Start a dictionary.</li>
-
-       <li><tt>&gt;&gt;</tt> - End a dictionary.</li>
-
-       <li><tt>[</tt> - Start an array.</li>
-
-       <li><tt>]</tt> - End an array.</li>
-
-       <li><tt>copy</tt> - Copy the top N objects on the stack.</li>
-
-       <li><tt>dup</tt> - Copy the top object on the stack.</li>
-
-       <li><tt>index</tt> - Copy the Nth from the top object on the stack.</li>
-
-       <li><tt>pop</tt> - Pop the top object on the stack.</li>
-
-       <li><tt>roll</tt> - Shift the top N objects on the stack.</li>
-
-       <li><tt>setpagedevice</tt> - Set the page header values according to the key/value dictionary on the stack.</li>
-
-</ul>
-
-<blockquote><b>Note:</b> <em>Never<em> use the unsupported <tt>dict</tt> or <tt>put</tt> operators in your option code. These operators are typically used in option code dating back to Level 1 PostScript printers, which did not support the simpler <tt>&lt;&lt;</tt> or <tt>&gt;&gt;</tt> operators. If you have old option code using <tt>dict</tt> or <tt>put</tt>, you can rewrite it very easily to use the newer <tt>&lt;&lt;</tt> and <tt>&gt;&gt;</tt> operators instead. For example, the following code to set the page size:
+<p><em>Never</em> use the unsupported <tt>dict</tt> or <tt>put</tt>
+operators in your option code. These operators are typically used in
+option code dating back to Level 1 PostScript printers, which did not
+support the simpler <tt>&lt;&lt;</tt> or <tt>&gt;&gt;</tt> operators.
+If you have old option code using <tt>dict</tt> or <tt>put</tt>, you can
+rewrite it very easily to use the newer <tt>&lt;&lt;</tt> and
+<tt>&gt;&gt;</tt> operators instead. For example, the following code
+to set the page size:</p>
 
 <style type='text/css'><!--
 PRE B {
 
 <style type='text/css'><!--
 PRE B {
@@ -913,7 +684,7 @@ PRE B {
 
 </blockquote>
 
 
 </blockquote>
 
-<h3>Supported Page Device Attributes</h3>
+<h3>Supported Page Device Attributes</a></h3>
 
 <p>Table 2 shows the supported page device attributes along with PostScript code examples.</p>
 
 
 <p>Table 2 shows the supported page device attributes along with PostScript code examples.</p>
 
@@ -1179,9 +950,646 @@ PRE B {
 </table></div>
 
 
 </table></div>
 
 
-<h2 class='title'><a name='HISTORY'>Change History</a></h2>
+<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+
+<p class='summary'>*cupsBackSide: keyword</p>
+
+<p>This attribute requests special handling of the back side of pages
+when doing duplexed (2-sided) output. <a href='#TABLE_1'>Table 1</a>
+shows the supported keyword values for this attribute and their effect
+on the raster data sent to your driver. For example, when <tt>cupsBackSide</tt>
+is <code>Rotated</code> and <tt>Tumble</tt> is <tt>false</tt>, your driver
+will receive print data starting at the bottom right corner of the page, with
+each line going right-to-left instead of left-to-right. The default value is
+<code>Normal</code>.</p>
+
+<blockquote><b>Note:</b>
+
+<p><tt>cupsBackSide</tt> replaces the older <tt>cupsFlipDuplex</tt>
+attribute - if <tt>cupsBackSide</tt> is specified, <tt>cupsFlipDuplex</tt>
+will be ignored.</p>
+
+</blockquote>
+
+<div class='table'>
+<table width='80%' summary='Back Side Raster Coordinate System'>
+<caption>Table 1: <a name='TABLE_1'>Back Side Raster Coordinate System</a></caption>
+<thead>
+<tr>
+       <th>cupsBackSide</th>
+       <th>Tumble Value</th>
+       <th>Image Presentation</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+       <td><code>Normal</code></td>
+       <td><code>false</code></td>
+       <td>Left-to-right, top-to-bottom</td>
+</tr>
+<tr>
+       <td><code>Normal</code></td>
+       <td><code>true</code></td>
+       <td>Left-to-right, top-to-bottom</td>
+</tr>
+<tr>
+       <td><code>ManualTumble</code></td>
+       <td><code>false</code></td>
+       <td>Left-to-right, top-to-bottom</td>
+</tr>
+<tr>
+       <td><code>ManualTumble</code></td>
+       <td><code>true</code></td>
+       <td>Right-to-left, bottom-to-top</td>
+</tr>
+<tr>
+       <td><code>Rotated</code></td>
+       <td><code>false</code></td>
+       <td>Right-to-left, bottom-to-top</td>
+</tr>
+<tr>
+       <td><code>Rotated</code></td>
+       <td><code>true</code></td>
+       <td>Right-to-left, top-to-bottom</td>
+</tr>
+<tr>
+       <td><code>Flipped</code> *</td>
+       <td><code>false</code></td>
+       <td>Left-to-right, bottom-to-top</td>
+</tr>
+<tr>
+       <td><code>Flipped</code> *</td>
+       <td><code>true</code></td>
+       <td>Right-to-left, top-to-bottom</td>
+</tr>
+</tbody>
+</table>
+</div>
+
+<p><em>* - Not supported in Mac OS X 10.5.x and earlier</em></p>
+
+<div class='figure'><table summary='Back side images'>
+<caption>Figure 1: Back side images</caption>
+<tr><td><img src='../images/raster.png' width='624' height='448' alt='Back side images'></td></tr>
+</table></div>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Flip the page image for the back side of duplexed output</em> 
+*cupsBackSide: Flipped
+
+<em>*% Rotate the page image for the back side of duplexed output</em> 
+*cupsBackSide: Rotated
+</pre>
+
+<p>Also see the related <a href='#APDuplexRequiresFlippedMargin'><tt>APDuplexRequiresFlippedMargin</tt></a>
+attribute.</p>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+
+<p class='summary'>*cupsEvenDuplex: boolean</p>
+
+<p>This boolean attribute notifies the RIP filters that the
+destination printer requires an even number of pages when 2-sided
+printing is selected. The default value is <code>false</code>.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Always send an even number of pages when duplexing</em> 
+*cupsEvenDuplex: true
+</pre>
+
+<h3><a name='cupsFax'>cupsFax</a></h3>
+
+<p class='summary'>*cupsFax: boolean</p>
+
+<p>This boolean attribute specifies whether the PPD defines a facsimile device. The default is <tt>false</tt>.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*cupsFax: true
+</pre>
+
+<h3><a name='cupsFilter'>cupsFilter</a></h3>
+
+<p class='summary'>*cupsFilter: "source/type cost program"</p>
+
+<p>This string attribute provides a conversion rule from the
+given source type to the printer's native format using the
+filter "program". If a printer supports the source type directly,
+the special filter program "-" may be specified.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Standard raster printer driver filter</em> 
+*cupsFilter: "application/vnd.cups-raster 100 rastertofoo"
+
+<em>*% Plain text filter</em> 
+*cupsFilter: "text/plain 10 texttofoo"
+
+<em>*% Pass-through filter for PostScript printers</em> 
+*cupsFilter: "application/vnd.cups-postscript 0 -"
+</pre>
+
+<h3><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
+
+<p class='summary'>*cupsFlipDuplex: boolean</p>
+
+<p>Due to implementation differences between Mac OS X and Ghostscript,
+the <tt>cupsFlipDuplex</tt> attribute is deprecated. Instead, use
+the <a href='#cupsBackSide'><tt>cupsBackSide</tt></a> attribute to specify
+the coordinate system (pixel layout) of the page data on the back side of
+duplex pages.</p>
+
+<p>The value <code>true</code> maps to a <tt>cupsBackSide</tt> value
+of <code>Rotated</code> on Mac OS X and <code>Flipped</code> with
+Ghostscript.</p>
+
+<p>The default value is <code>false</code>.</p>
+
+<blockquote><b>Note:</b>
+
+<p>Mac OS X drivers that previously used
+<tt>cupsFlipDuplex</tt> may wish to provide both the old and
+new attributes for maximum compatibility, for example:</p>
+
+<pre class='command'>
+*cupsBackSide: Rotated
+*cupsFlipDuplex: true
+</pre>
+
+<p>Similarly, drivers written for other operating systems using
+Ghostscript can use:</p>
+
+<pre class='command'>
+*cupsBackSide: Flipped
+*cupsFlipDuplex: true
+</pre></blockquote>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+
+<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
+
+<p>This attribute defines a mapping from IPP <code>finishings</code>
+values to PPD options and choices.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*cupsIPPFinishings 4/staple: "*StapleLocation SinglePortrait"
+*cupsIPPFinishings 5/punch: "*PunchMedia Yes *PunchLocation LeftSide"
+*cupsIPPFinishings 20/staple-top-left: "*StapleLocation SinglePortrait"
+*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape"
+</pre>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+
+<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
+
+<p>This optional attribute maps custom
+<code>printer-state-reasons</code> keywords that are generated by
+the driver to human readable text. The optional URIs string
+contains zero or more URIs separated by a newline. Each URI can
+be a CUPS server absolute path to a help file under the
+scheduler's <code>DocumentRoot</code> directory, a full HTTP URL
+("http://www.domain.com/path/to/help/page.html"), or any other
+valid URI which directs the user at additional information
+concerning the condition that is being reported.</p>
+
+<p>Since the reason text is limited to 80 characters by the PPD specification,
+longer text strings can be included by URI-encoding the text with the "text"
+scheme, for example "text:some%20text". Multiple <code>text</code> URIs are
+combined (with spaces between each URI) by the <tt>ppdLocalizeIPPReason</tt>
+into a single string that can be displayed to the user.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Map com.vendor-error to text but no page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: ""
+
+<em>*% Map com.vendor-error to more than 80 characters of text but no page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: "text:Now%20is%20the%20time
+text:for%20all%20good%20men%20to%20come%20to%20the%20aid%20of%20their%20country."
+
+<em>*% Map com.vendor-error to text and a local page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
+
+<em>*% Map com.vendor-error to text and a remote page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: "http://www.vendor.com/help"
+
+<em>*% Map com.vendor-error to text and a local, Apple help book, and remote page</em>
+*APHelpBook: "file:///Library/Printers/vendor/Help/filename"
+*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html
+help:anchor='com.vendor-error'%20bookID=Vendor%20Help
+http://www.vendor.com/help"
+*End
+</pre>
+
+<h3><span class='info'>CUPS 1.2</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+
+<p class='summary'>*cupsLanguages: "locale list"</p>
+
+<p>This attribute describes which language localizations are
+included in the PPD. The "locale list" string is a space-delimited
+list of locale names ("en", "en_US", "fr_CA", etc.)</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify Canadian, UK, and US English, and Candian and French French</em> 
+*cupsLanguages: "en_CA en_UK en_US fr_CA fr_CA"
+</pre>
+
+<h3><a name='cupsManualCopies'>cupsManualCopies</a></h3>
+
+<p class='summary'>*cupsManualCopies: boolean</p>
+
+<p>This boolean attribute notifies the RIP filters that the
+destination printer does not support copy generation in
+hardware. The default value is <code>false</code>.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Tell the RIP filters to generate the copies for us</em> 
+*cupsManualCopies: true
+</pre>
+
+<h3><a name='cupsModelNumber'>cupsModelNumber</a></h3>
+
+<p class='summary'>*cupsModelNumber: number</p>
+
+<p>This integer attribute specifies a printer-specific model
+number. This number can be used by a filter program to adjust
+the output for a specific model of printer.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify an integer for a driver-specific model number</em> 
+*cupsModelNumber: 1234
+</pre>
+
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+
+<p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
+
+<p>This string attribute specifies the character set that is used
+for strings in PJL commands. If not specified, US-ASCII is
+assumed.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify UTF-8 is used in PJL strings</em>
+*cupsPJLCharset: "UTF-8"
+</pre>
+
+
+<h3><span class='info'>CUPS 1.2</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+
+<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
+
+<p>This string attribute specifies printer-specific "port
+monitor" filters that may be used with the printer. The CUPS
+scheduler also looks for the <tt>Protocols</tt> attribute to see
+if the <tt>BCP</tt> or <tt>TBCP</tt> protocols are supported. If
+so, the corresponding port monitor ("bcp" and "tbcp",
+respectively) is listed in the printer's
+<tt>port-monitor-supported</tt> attribute.</p>
+
+<p>The "urischeme" portion of the attribute specifies the URI scheme
+that this port monitor should be used for. Typically this is used to
+pre-select a particular port monitor for each type of connection that
+is supported by the printer. The "port monitor" string can be "none"
+to disable the port monitor for the given URI scheme.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Specify a PostScript printer that supports the TBCP protocol</em>
+*Protocols: TBCP PJL
+
+<em>*% Specify that TBCP should be used for socket connections but not USB</em>
+*cupsPortMonitor socket/AppSocket Printing: "tbcp"
+*cupsPortMonitor usb/USB Printing: "none"
+
+<em>*% Specify a printer-specific port monitor for an Epson USB printer</em> 
+*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
+</pre>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+
+<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
+
+<p>This string attribute provides a pre-filter rule. The pre-filter
+program will be inserted in the conversion chain immediately 
+before the filter that accepts the given MIME type.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% PDF pre-filter</em>
+*cupsPreFilter: "application/pdf 100 mypdfprefilter"
+
+<em>*% PNG pre-filter</em>
+*cupsPreFilter: "image/png 0 mypngprefilter"
+</pre>
+
+<h3><a name='cupsVersion'>cupsVersion</a></h3>
+
+<p class='summary'>*cupsVersion: major.minor</p>
+
+<p>This required attribute describes which version of the CUPS
+PPD file extensions was used. Currently it must be the string
+"1.0", "1.1", "1.2", or "1.3".</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify a CUPS 1.2 driver</em> 
+*cupsVersion: "1.2"
+</pre>
+
+
+<h2 class='title'><a name='MACOSX'>Mac OS X Attributes</a></h2>
+
+<h3><a name='APBookFile'>APBookFile</a></h3>
+
+<p class='summary'>*APBookFile: "file URL"</p>
+
+<p>This string attribute specifies the Apple help book file to use when
+looking up IPP reason codes for this printer driver. The
+<a href='#cupsIPPReason'><tt>cupsIPPReason</tt></a> attribute maps
+"help" URIs to this file.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+*APBookFile: "file:///Library/Printers/vendor/Help/filename"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+
+<p class='summary'>*APDialogExtension: "/Library/Printers/vendor/filename.plugin"</p>
+
+<p>This attribute defines additional option panes that are displayed in the
+print dialog. Each attribute adds one or more option panes. See the "OutputBinsPDE"
+example and <a href='http://developer.apple.com/qa/qa2004/qa1352.html'>Apple
+Technical Q&amp;A QA1352</a> for information on writing your own print dialog
+plug-ins.</p>
+
+<blockquote><b>Note:</b>
+
+<p>Starting with Mac OS X 10.5, each plug-in must be compiled "4-way fat"
+(32-bit and 64-bit for both PowerPC and Intel) with garbage collection enabled
+in order to be usable with all applications.</p>
+
+</blockquote>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Add two panes for finishing and driver options
+*APDialogExtension: "/Library/Printers/vendor/finishing.plugin"
+*APDialogExtension: "/Library/Printers/vendor/options.plugin"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+
+<p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
+
+<p>This boolean attribute notifies the RIP filters that the
+destination printer requires the top and bottom margins of the
+<tt>ImageableArea</tt> to be swapped for the back page. The
+default is <tt>true</tt> when <tt>cupsBackSide</tt> is <tt>Flipped</tt>
+and <tt>false</tt> otherwise. <a href='#TABLE_2'>Table 2</a> shows how
+<tt>APDuplexRequiresFlippedMargin</tt> interacts with <tt>cupsBackSide</tt>
+and the <tt>Tumble</tt> page attribute.</p>
+
+<div class='table'>
+<table width='80%' summary='Margin Flipping Modes'>
+<caption>Table 2: <a name='TABLE_2'>Margin Flipping Modes</a></caption>
+<thead>
+<tr>
+       <th>APDuplexRequiresFlippedMargin</th>
+       <th>cupsBackSide</th>
+       <th>Tumble Value</th>
+       <th>Margins</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+       <td>false</td>
+       <td>any</td>
+       <td>any</td>
+       <td>Normal</td>
+</tr>
+<tr>
+       <td>any</td>
+       <td>Normal</td>
+       <td>any</td>
+       <td>Normal</td>
+</tr>
+<tr>
+       <td>true</td>
+       <td>ManualDuplex</td>
+       <td>false</td>
+       <td>Normal</td>
+</tr>
+<tr>
+       <td>true</td>
+       <td>ManualDuplex</td>
+       <td>true</td>
+       <td>Flipped</td>
+</tr>
+<tr>
+       <td>true</td>
+       <td>Rotated</td>
+       <td>false</td>
+       <td>Flipped</td>
+</tr>
+<tr>
+       <td>true</td>
+       <td>Rotated</td>
+       <td>true</td>
+       <td>Normal</td>
+</tr>
+<tr>
+       <td>true or unspecified</td>
+       <td>Flipped</td>
+       <td>any</td>
+       <td>Flipped</td>
+</tr>
+</tbody>
+</table></div>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Rotate the back side images</em>
+*cupsBackSide: Rotated
+
+<em>*% Don't swap the top and bottom margins for the back side</em> 
+*APDuplexRequiresFlippedMargin: false
+</pre>
+
+<p>Also see the related <a href='#cupsBackSide'><tt>cupsBackSide</tt></a>
+attribute.</p>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+
+<p class='summary'>*APPrinterIconPath: "/Library/Printers/vendor/filename"</p>
+
+<p>This attribute defines the location of a printer icon file to use when
+displaying the printer.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Apple icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.icns"
+
+*% TIFF icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.tiff"
+
+*% PNG icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.png"
+
+*% JPEG icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.jpg"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+
+<p class='summary'>*APPrinterLowInkTool: "/Library/Printers/vendor/program"</p>
+
+<p>This attribute defines an program that checks the ink/toner/marker levels
+on a printer, returning an XML document with those levels. See the "InkTool"
+example and
+<a href='http://developer.apple.com/technotes/tn2005/tn2144.html'>Apple
+Technical Note TN2144</a> for more information.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Use a vendor monitoring program
+*APPrinterLowInkTool: "/Library/Printers/vendor/Tools/lowinktool"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+
+<p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
+
+<p>This attribute defines presets for multiple options that show up
+in the print dialog of applications (such as iPhoto) that set the job
+style hint to <tt>NSPrintPhotoJobStyleHint</tt>. Each preset maps to one or
+more pairs of PPD options and choices as well as providing key/value data for
+the application. The following preset names are currently defined:</p>
+
+<ul>
+
+       <li><code>Photo_with_Paper_Auto-Detect</code>; Photo printing
+        with paper auto-detect</li>
+
+       <li><code>Photo_with_Paper_Auto-Detect_-_Fine</code>; Photo printing
+        with paper auto-detect - fine</li>
+
+       <li><code>Photo_on_Plain_Paper</code>; Photo printing on plain paper</li>
+
+       <li><code>Photo_on_Plain_Paper_-_Fine</code>; Photo printing on plain
+        paper - fine</li>
+
+       <li><code>Photo_on_Photo_Paper</code>; Photo printing on photo paper</li>
+
+       <li><code>Photo_on_Photo_Paper_-_Fine</code>; Photo printing on photo
+        paper - fine</li>
+
+       <li><code>Photo_on_Matte_Paper</code>; Photo printing on matte paper</li>
+
+       <li><code>Photo_on_Matte_Paper_-_Fine</code>; Photo printing on matte
+        paper - fine</li>
+
+</ul>
+
+<p>The value string consists of pairs of keywords, either an option name and
+choice (*MainKeyword OptionKeyword) or a preset identifier and value
+(com.apple.print.preset.foo value). Preset identifiers and their supported
+values are documented in "<a
+href='http://developer.apple.com/documentation/Printing/Conceptual/PresetDraft/presets_intro/chapter_1_section_2.html'
+>Creating Printing Presets for iPhoto: Printing Presets File Format</a>".</p>
+
+<p>Presets, like options, can also be localized in multiple languages.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*APPrinterPreset Photo_on_Photo_Paper/Photo on Photo Paper: "
+  *MediaType Glossy
+  *ColorModel RGB
+  *Resolution 300dpi
+  com.apple.print.preset.graphicsType Photo
+  com.apple.print.preset.quality mid
+  com.apple.print.preset.media-front-coating glossy"
+*End
+*fr.APPrinterPreset Photo_on_Photo_Paper/Photo sur papier photographique: ""
+</pre>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+
+<p class='summary'>*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/filename.app"</p>
+
+<p>This attribute defines a GUI application that can be used to do printer
+maintenance functions such as cleaning the print head(s). See ... for more
+information.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Define the printer utility application
+*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/Tools/utility.app"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+
+<p class='summary'>*APScanAppBundleID: "bundle ID"</p>
+
+<p>This attribute defines the application to use when scanning pages from
+the device.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*APScanAppBundleID: "com.apple.ImageCaptureApp"
+</pre>
+
+
+<h2 class='title'><a name='HISTORY'>Change History</a></h2>
+
+<h3>Changes in CUPS 1.3.1</a></h3>
+
+<ul>
+
+       <li>Added missing Mac OS X <tt>AP</tt> attributes.</li>
+
+       <li>Added section on auto-configuration including the
+       <tt>OID<i>MainKeyword</i></tt> and <tt>?<i>MainKeyword</i></tt>
+       attributes.</li>
+
+       <li>Minor reorganization.</li>
+
+</ul>
+
 
 
-<h3>Changes in CUPS 1.3</h3>
+<h3>Changes in CUPS 1.3</a></h3>
 
 <ul>
 
 
 <ul>
 
@@ -1195,7 +1603,7 @@ PRE B {
 
 </ul>
 
 
 </ul>
 
-<h3>Changes in CUPS 1.2.8</h3>
+<h3>Changes in CUPS 1.2.8</a></h3>
 
 <ul>
 
 
 <ul>
 
@@ -1204,7 +1612,7 @@ PRE B {
 
 </ul>
 
 
 </ul>
 
-<h3>Changes in CUPS 1.2</h3>
+<h3>Changes in CUPS 1.2</a></h3>
 
 <ul>
 
 
 <ul>
 
@@ -1228,7 +1636,7 @@ PRE B {
 
 </ul>
 
 
 </ul>
 
-<h3>Changes in CUPS 1.1</h3>
+<h3>Changes in CUPS 1.1</a></h3>
 
 <ul>
 
 
 <ul>
 
index 32057349539085adaab02677260fbf28a04f3ef2..6724683eadc2a391f63f45bd0bb312920d2283c2 100644 (file)
@@ -186,6 +186,10 @@ translated buttons.</P>
        <TD>button-export-samba.gif</TD>
        <TD>Export Printers to Samba</TD>
 </TR>
        <TD>button-export-samba.gif</TD>
        <TD>Export Printers to Samba</TD>
 </TR>
+<TR>
+       <TD>button-find-new-printers.gif</TD>
+       <TD>Find New Printers</TD>
+</TR>
 <TR>
        <TD>button-help.gif</TD>
        <TD>Help</TD>
 <TR>
        <TD>button-help.gif</TD>
        <TD>Help</TD>
@@ -379,7 +383,14 @@ message catalog and then make any necessary changes.</P>
 favorite text editor or translation program to translate the text
 to the desired language.</P>
 
 favorite text editor or translation program to translate the text
 to the desired language.</P>
 
-<P>Finally, add your locale to the <CODE>LANGUAGES</CODE>
+<P>Then validate your translation using the <VAR>locale/checkpo</VAR> utility:</P>
+
+<PRE CLASS="command">
+cd locale
+./checkpo cups_ll_CC.po
+</PRE>
+
+<P>After fixing any errors in your translation, add your locale to the <CODE>LANGUAGES</CODE>
 variable in the <VAR>Makedefs</VAR> file and run the "make
 install" command in the <VAR>locale</VAR> subdirectory to test
 the translation.</P>
 variable in the <VAR>Makedefs</VAR> file and run the "make
 install" command in the <VAR>locale</VAR> subdirectory to test
 the translation.</P>
@@ -555,6 +566,10 @@ translated all of the templates, add the locale to the
        <TD>This template shows the "showing N or M jobs" header in the
        jobs list.</TD>
 </TR>
        <TD>This template shows the "showing N or M jobs" header in the
        jobs list.</TD>
 </TR>
+<TR>
+       <TD>list-available-printers.tmpl</TD>
+       <TD>This template shows a list of new printers that have been found.</TD>
+</TR>
 <TR>
        <TD>maintenance.tmpl</TD>
        <TD>This template shows "maintenance commands sent".</TD>
 <TR>
        <TD>maintenance.tmpl</TD>
        <TD>This template shows "maintenance commands sent".</TD>
@@ -916,6 +931,10 @@ supported <CODE>OP</CODE> values.</P>
        <TD>export-samba</TD>
        <TD>Exports printers to Samba.</TD>
 </TR>
        <TD>export-samba</TD>
        <TD>Exports printers to Samba.</TD>
 </TR>
+<TR>
+       <TD>find-new-printers</TD>
+       <TD>Find new printers that have not yet been added.</TD>
+</TR>
 <TR>
        <TD>modify-class</TD>
        <TD>Modifies a printer class.</TD>
 <TR>
        <TD>modify-class</TD>
        <TD>Modifies a printer class.</TD>
index b51dd14671bda10128ea9643ae407da26ec73100..0b0844aeda26447f723e2c1ab7557cb04af8ea09 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: pstops.c 6757 2007-08-01 22:30:05Z mike $"
+ * "$Id: pstops.c 6759 2007-08-02 04:10:23Z mike $"
  *
  *   PostScript filter for the Common UNIX Printing System (CUPS).
  *
  *
  *   PostScript filter for the Common UNIX Printing System (CUPS).
  *
@@ -3351,5 +3351,5 @@ write_labels(pstops_doc_t *doc,           /* I - Document information */
 
 
 /*
 
 
 /*
- * End of "$Id: pstops.c 6757 2007-08-01 22:30:05Z mike $".
+ * End of "$Id: pstops.c 6759 2007-08-02 04:10:23Z mike $".
  */
  */
index e9b7bcbf3f597e7ab55f76f6dad8e7b84ce4f624..dbddf812fed52659d8005c9add11f65b5b244f95 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: rastertolabel.c 6718 2007-07-25 00:02:41Z mike $"
+ * "$Id: rastertolabel.c 6820 2007-08-20 21:15:28Z mike $"
  *
  *   Label printer filter for the Common UNIX Printing System (CUPS).
  *
  *
  *   Label printer filter for the Common UNIX Printing System (CUPS).
  *
@@ -660,7 +660,8 @@ EndPage(ppd_file_t *ppd,            /* I - PPD file */
         * End the label and eject...
        */
 
         * End the label and eject...
        */
 
-        puts("^XZ");
+        puts("^IDR:CUPS.GRF^FS");
+       puts("^XZ");
 
        /*
         * Free compression buffers...
 
        /*
         * Free compression buffers...
@@ -1299,5 +1300,5 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
 
 /*
 
 
 /*
- * End of "$Id: rastertolabel.c 6718 2007-07-25 00:02:41Z mike $".
+ * End of "$Id: rastertolabel.c 6820 2007-08-20 21:15:28Z mike $".
  */
  */
index 8e3abb3ffea7843de52f2948ad7c401520eff6fb..7dddf9843b97c9f1b22fdc1912170c422144df96 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: Makefile 6707 2007-07-23 17:49:41Z mike $"
+# "$Id: Makefile 6926 2007-09-06 14:34:31Z mike $"
 #
 #   Locale file makefile for the Common UNIX Printing System (CUPS).
 #
 #
 #   Locale file makefile for the Common UNIX Printing System (CUPS).
 #
@@ -16,8 +16,8 @@
 include ../Makedefs
 
 
 include ../Makedefs
 
 
-OBJS   =       po2strings.o strings2po.o translate.o
-TARGETS        =       po2strings strings2po translate
+OBJS   =       checkpo po2strings.o strings2po.o translate.o
+TARGETS        =       checkpo po2strings strings2po translate
 
 
 #
 
 
 #
@@ -95,6 +95,18 @@ pot:
        done
 
 
        done
 
 
+#
+# checkpo - A simple utility to check PO files for correct translation
+#           strings.
+#
+# checkpo filename.po [... filenameN.po]
+#
+
+checkpo:       checkpo.o ../cups/$(LIBCUPS)
+       echo Linking $<...
+       $(CC) $(LDFLAGS) -o checkpo checkpo.o $(LIBS)
+
+
 #
 # po2strings - A simple utility which uses iconv to convert GNU gettext
 #              message catalogs to Mac OS X .strings files.
 #
 # po2strings - A simple utility which uses iconv to convert GNU gettext
 #              message catalogs to Mac OS X .strings files.
@@ -139,5 +151,5 @@ include Dependencies
 
 
 #
 
 
 #
-# End of "$Id: Makefile 6707 2007-07-23 17:49:41Z mike $".
+# End of "$Id: Makefile 6926 2007-09-06 14:34:31Z mike $".
 #
 #
index efa5ffb1b5fd9046b755875c23551691cd41b128..efe605bfcc6f170a3c8de95cfac5a71f7f3c9007 100644 (file)
@@ -675,7 +675,7 @@ msgstr "ERROR: Værdi for lysstyrke %s ikke understøttet, bruger lysstyrke=100!
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgstr "ERROR: Værdi for gamma %s ikke understøttet, bruger gamma=1000!\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgstr "ERROR: Værdi for gamma %s ikke understøttet, bruger gamma=1000!\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: Værdi for number-up %s ikke understøttet, bruger number-up=1!\n"
+msgstr "ERROR: Værdi for number-up %d ikke understøttet, bruger number-up=1!\n"
 msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
 msgstr "ERROR: Værdi for number-up-layout %s ikke understøttet, bruger number-up-layout=lrtb!\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
 msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
 msgstr "ERROR: Værdi for number-up-layout %s ikke understøttet, bruger number-up-layout=lrtb!\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
@@ -1203,33 +1203,33 @@ msgstr "Brug: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr "Brug: snmp [host-or-ip-address]\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr "Brug: snmp [host-or-ip-address]\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "ADVARSEL: Boolesk forventet for muligheden waiteof \"%s\"\n"
+msgstr "WARNING: Boolesk forventet for muligheden waiteof \"%s\"\n"
 msgid "WARNING: Couldn't create read channel\n"
 msgid "WARNING: Couldn't create read channel\n"
-msgstr "ADVARSEL: Kunne ikke oprette læsekanal\n"
+msgstr "WARNING: Kunne ikke oprette læsekanal\n"
 msgid "WARNING: Couldn't create side channel\n"
 msgid "WARNING: Couldn't create side channel\n"
-msgstr "ADVARSEL: Kunne ikke oprette sidekanal\n"
+msgstr "WARNING: Kunne ikke oprette sidekanal\n"
 msgid "WARNING: Failed to read side-channel request!\n"
 msgid "WARNING: Failed to read side-channel request!\n"
-msgstr "ADVARSEL: Kunne ikke læse anmodningen om side-channel!\n"
+msgstr "WARNING: Kunne ikke læse anmodningen om side-channel!\n"
 msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
 msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
-msgstr "ADVARSEL: Muligheden \"%s\" kan ikke inkluderes via IncludeFeature!\n"
+msgstr "WARNING: Muligheden \"%s\" kan ikke inkluderes via IncludeFeature!\n"
 msgid "WARNING: Remote host did not respond with command status byte after %d seconds!\n"
 msgid "WARNING: Remote host did not respond with command status byte after %d seconds!\n"
-msgstr "ADVARSEL: Ekstern vært svarede ikke med kommandostatus-byte efter %d sekunder!\n"
+msgstr "WARNING: Ekstern vært svarede ikke med kommandostatus-byte efter %d sekunder!\n"
 msgid "WARNING: Remote host did not respond with control status byte after %d seconds!\n"
 msgid "WARNING: Remote host did not respond with control status byte after %d seconds!\n"
-msgstr "ADVARSEL: Ekstern vært svarede ikke med kontrolstatus-byte efter %d sekunder!\n"
+msgstr "WARNING: Ekstern vært svarede ikke med kontrolstatus-byte efter %d sekunder!\n"
 msgid "WARNING: Remote host did not respond with data status byte after %d seconds!\n"
 msgid "WARNING: Remote host did not respond with data status byte after %d seconds!\n"
-msgstr "ADVARSEL: Ekstern vært svarede ikke med datastatus-byte efter %d sekunder!\n"
+msgstr "WARNING: Ekstern vært svarede ikke med datastatus-byte efter %d sekunder!\n"
 msgid "WARNING: SCSI command timed out (%d); retrying...\n"
 msgid "WARNING: SCSI command timed out (%d); retrying...\n"
-msgstr "ADVARSEL: Timeout i SCSI-kommando (%d); prøver igen...\n"
+msgstr "WARNING: Timeout i SCSI-kommando (%d); prøver igen...\n"
 msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
 msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
-msgstr "ADVARSEL: Dette dokument overholder ikke Adobe Document Structuring Conventions og udskrives muligvis ikke korrekt!\n"
+msgstr "WARNING: Dette dokument overholder ikke Adobe Document Structuring Conventions og udskrives muligvis ikke korrekt!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "ADVARSEL: Ukendt valg \&quot;%s\&quot; til muligheden \&quot;%s\&quot;!\n"
+msgstr "WARNING: Ukendt valg \&quot;%s\&quot; til muligheden \&quot;%s\&quot;!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "ADVARSEL: Ukendt mulighed \&quot;%s\&quot;!\n"
+msgstr "WARNING: Ukendt mulighed \&quot;%s\&quot;!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "ADVARSEL: Ikke understøttet baudhastighed %s!\n"
+msgstr "WARNING: Ikke understøttet baudhastighed %s!\n"
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
-msgstr "ADVARSEL: Kan gendannes: Netværksværten '%s' er i brug; prøver igen om ´%d sekunder...\n"
+msgstr "WARNING: Kan gendannes: Netværksværten '%s' er i brug; prøver igen om ´%d sekunder...\n"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgstr "Advarsel - der er ikke installeret nogen Windows 2000-printerarkiver!"
 msgid "Yes"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgstr "Advarsel - der er ikke installeret nogen Windows 2000-printerarkiver!"
 msgid "Yes"
index 21187c761c3e5923e48658edab48125117105ef7..1827b0b0a47418f1c67f89812e67ee519818a681 100644 (file)
@@ -211,7 +211,7 @@ msgstr "      **FAIL**  LanguageEncoding %s falsch!\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgstr "      **FAIL**  LanguageVersion %s falsch - muss Englisch sein!\n"
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgstr "      **FAIL**  LanguageVersion %s falsch - muss Englisch sein!\n"
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
-msgstr "      **FAIL**  Der Standardcode für Optionen kann nicht interpretiert werden!\n"
+msgstr "      **FAIL**  Der Standardcode für Optionen kann nicht interpretiert werden: %s\n"
 msgid "      **FAIL**  Default translation string for option %s choice %s contains 8-bit characters!\n"
 msgstr "      **FAIL**  Standardübersetzung für Option %s Auswahl %s enthält 8-bit Zeichen!\n"
 msgid "      **FAIL**  Default translation string for option %s contains 8-bit characters!\n"
 msgid "      **FAIL**  Default translation string for option %s choice %s contains 8-bit characters!\n"
 msgstr "      **FAIL**  Standardübersetzung für Option %s Auswahl %s enthält 8-bit Zeichen!\n"
 msgid "      **FAIL**  Default translation string for option %s contains 8-bit characters!\n"
@@ -615,27 +615,27 @@ msgstr "ERROR: Aufspalten von „pictwpstops“ nicht möglich: %s\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgstr "ERROR: Abfragen der PPD-Datei für den Drucker „%s“ nicht möglich - %s.\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgstr "ERROR: Abfragen der PPD-Datei für den Drucker „%s“ nicht möglich - %s.\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "ERROR: Abfragen der Attribute (%s) für den Auftrag %d nicht möglich!\n"
+msgstr "ERROR: Abfragen der Attribute (%2$s) für den Auftrag %1$d nicht möglich!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgstr "ERROR: Abfragen des Druckerstatus (%s) nicht möglich!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
 msgstr "ERROR: Der Drucker „%s“ wurde nicht gefunden!\n"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgstr "ERROR: Abfragen des Druckerstatus (%s) nicht möglich!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
 msgstr "ERROR: Der Drucker „%s“ wurde nicht gefunden!\n"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "ERROR: „s%“ konnte nicht geöffnet werden - %s\n"
+msgstr "ERROR: „%s“ konnte nicht geöffnet werden - %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
-msgstr "ERROR: s% konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: %s konnte nicht geöffnet werden: %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "ERROR: Die Gerätdatei „s%“ konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: Die Gerätdatei „%s“ konnte nicht geöffnet werden: %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "ERROR: Die Datei „s%“ konnte nicht geöffnet werden - %s\n"
+msgstr "ERROR: Die Datei „%s“ konnte nicht geöffnet werden - %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "ERROR: Die Datei „s%“ konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: Die Datei „%s“ konnte nicht geöffnet werden: %s\n"
 msgid "ERROR: Unable to open image file for printing!\n"
 msgstr "ERROR: Öffnen der Bilddatei für den Druck nicht möglich!\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
 msgid "ERROR: Unable to open image file for printing!\n"
 msgstr "ERROR: Öffnen der Bilddatei für den Druck nicht möglich!\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "ERROR: Die zu druckende Datei „s%“ konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: Die zu druckende Datei „%s“ konnte nicht geöffnet werden: %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "ERROR: Die zu druckende Datei „s%“ konnte nicht geöffnet werden - %s\n"
+msgstr "ERROR: Die zu druckende Datei „%s“ konnte nicht geöffnet werden - %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
 msgstr "ERROR: Die zu druckende Datei %s konnte nicht geöffnet werden: %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
 msgstr "ERROR: Die zu druckende Datei %s konnte nicht geöffnet werden: %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
@@ -649,7 +649,7 @@ msgstr "ERROR: Senden der Druckdaten (%d) nicht möglich!\n"
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr "ERROR: Warten auf pictwpstops nicht möglich: %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr "ERROR: Warten auf pictwpstops nicht möglich: %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "ERROR: Schreiben von %d Byte auf „s%“ nicht möglich: %s\n"
+msgstr "ERROR: Schreiben von %d Byte auf „%s“ nicht möglich: %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
 msgstr "ERROR: Schreiben der Printdaten nicht möglich: %s\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
 msgid "ERROR: Unable to write print data: %s\n"
 msgstr "ERROR: Schreiben der Printdaten nicht möglich: %s\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
@@ -1201,7 +1201,7 @@ msgstr "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr "Usage: snmp [host-or-ip-address]\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr "Usage: snmp [host-or-ip-address]\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "WARNUNG: Boolesche Zahl hinter der Option „%s“ erwartet\n"
+msgstr "WARNING: Boolesche Zahl hinter der Option „%s“ erwartet\n"
 msgid "WARNING: Couldn't create read channel\n"
 msgstr "WARNING: Der Lesekanal konnte nicht erstellt werden.\n"
 msgid "WARNING: Couldn't create side channel\n"
 msgid "WARNING: Couldn't create read channel\n"
 msgstr "WARNING: Der Lesekanal konnte nicht erstellt werden.\n"
 msgid "WARNING: Couldn't create side channel\n"
@@ -1221,11 +1221,11 @@ msgstr "WARNING: SCSI-Zeitüberschreitung (%d); erneut versuchen …\n"
 msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
 msgstr "WARNING: Dieses Dokument entspricht nicht den Dokumentstruktur-Konventionen von Adobe und wird möglicherweise nicht korrekt gedruckt!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
 msgstr "WARNING: Dieses Dokument entspricht nicht den Dokumentstruktur-Konventionen von Adobe und wird möglicherweise nicht korrekt gedruckt!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "WARNUNG: Auswahl „%s“ für Option unbekannt!\n"
+msgstr "WARNING: Auswahl „%s“ für Option %s!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "WARNUNG: Option „%s“ unbekannt!\n"
+msgstr "WARNING: Option „%s“ unbekannt!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "WARNUNG: Baudrate „%s“ wird nicht unterstützt!\n"
+msgstr "WARNING: Baudrate „%s“ wird nicht unterstützt!\n"
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
 msgstr "WARNING: Wiederherstellbar: Der Netzwerk-Host „%s“ ist beschäftigt, erneuter Versuch in %d Sekunden …\n"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
 msgstr "WARNING: Wiederherstellbar: Der Netzwerk-Host „%s“ ist beschäftigt, erneuter Versuch in %d Sekunden …\n"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
index b6765fe589ecdb831c35d61cd7f1f277e50ce3d9..9a5d0c14755c775b94fc5f6dbfdb0b72f74810aa 100644 (file)
@@ -119,7 +119,7 @@ msgstr "        PASA    Product\n"
 msgid "        PASS    ShortNickName\n"
 msgstr "        PASA    ShortNickName\n"
 msgid "        WARN    \"%s %s\" conflicts with \"%s %s\"\n                (constraint=\"%s %s %s %s\")\n"
 msgid "        PASS    ShortNickName\n"
 msgstr "        PASA    ShortNickName\n"
 msgid "        WARN    \"%s %s\" conflicts with \"%s %s\"\n                (constraint=\"%s %s %s %s\")\n"
-msgstr "        ADVERTENCIA    “%s %s” está en conflicto con “%s %s”\n                (restricción=“%s %s ”)\n"
+msgstr "        ADVERTENCIA    “%s %s” está en conflicto con “%s %s”\n                (restricción=“%s %s %s %s ”)\n"
 msgid "        WARN    %s has no corresponding options!\n"
 msgstr "        ADVERTENCIA    %s tiene opciones que no corresponden.\n"
 msgid "        WARN    %s shares a common prefix with %s\n                REF: Page 15, section 3.2.\n"
 msgid "        WARN    %s has no corresponding options!\n"
 msgstr "        ADVERTENCIA    %s tiene opciones que no corresponden.\n"
 msgid "        WARN    %s shares a common prefix with %s\n                REF: Page 15, section 3.2.\n"
@@ -673,7 +673,7 @@ msgstr "ERROR: Valor de brillo no admitido %s; se está usando brillo=100.\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgstr "ERROR: Valor de gamma no admitido %s; se está usando gamma=1000.\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgstr "ERROR: Valor de gamma no admitido %s; se está usando gamma=1000.\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: Valor de páginas por hoja no admitido %s; se está usando páginas por hoja=1.\n"
+msgstr "ERROR: Valor de páginas por hoja no admitido %d; se está usando páginas por hoja=1.\n"
 msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
 msgstr "ERROR: Valor de disposiciones por hoja no admitido %s; se está usando disposiciones por hoja=lrtb.\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
 msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
 msgstr "ERROR: Valor de disposiciones por hoja no admitido %s; se está usando disposiciones por hoja=lrtb.\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
index 76e9fb3292ee972f426c5df06fa68c9050c6d9c3..e247afff3d1193e7a100bc6fd55ab8223cdaa120 100644 (file)
@@ -337,50 +337,40 @@ msgstr ""
 "        HOIATUS    ShortNickName on PPD 4.3 spetsifikatsiooni järgi nõutav.\n"
 "                   Viide: lk 64-65, sektsioon 5.3.\n"
 
 "        HOIATUS    ShortNickName on PPD 4.3 spetsifikatsiooni järgi nõutav.\n"
 "                   Viide: lk 64-65, sektsioon 5.3.\n"
 
-#, fuzzy, c-format
 msgid "      %s  %s %s does not exist!\n"
 msgid "      %s  %s %s does not exist!\n"
-msgstr "      **EBAÕNN**  %s %s ei ole olemas!\n"
+msgstr "      %s  %s %s ei ole olemas!\n"
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s!\n"
+msgstr "      %s  Puudub \"%s\" tõlkestring võtmele %s!\n"
 
 
-#, fuzzy, c-format
 msgid ""
 "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
 msgid ""
 "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
-msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
+msgstr "      %s  Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
-msgstr "      **EBAÕNN**  Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr "      %s  Vigane cupsFilter väärtus \"%s\"!\n"
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
 msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
-msgstr "      **EBAÕNN**  Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr "      %s  Vigane cupsFilter väärtus \"%s\"!\n"
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad language \"%s\"!\n"
 msgid "      %s  Bad language \"%s\"!\n"
-msgstr "      **EBAÕNN**  Vigane keel \"%s\"!\n"
+msgstr "      %s  Vigane keel \"%s\"!\n"
 
 
-#, fuzzy, c-format
 msgid "      %s  Missing \"%s\" translation string for option %s!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s!\n"
-msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s!\n"
+msgstr "      %s  Puudub \"%s\" tõlkestring võtmele %s!\n"
 
 
-#, fuzzy, c-format
 msgid "      %s  Missing \"%s\" translation string for option %s, choice %s!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
+msgstr "      %s  Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
 
 #, c-format
 msgid "      %s  Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgstr ""
 
 
 #, c-format
 msgid "      %s  Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "      %s  Missing cupsFilter file \"%s\"\n"
 msgid "      %s  Missing cupsFilter file \"%s\"\n"
-msgstr "      **EBAÕNN**  Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr "      %s  Vigane cupsFilter väärtus \"%s\"!\n"
 
 
-#, fuzzy, c-format
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
-msgstr "      **EBAÕNN**  Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr "      %s  Vigane cupsFilter väärtus \"%s\"!\n"
 
 #, c-format
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
 
 #, c-format
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
@@ -390,15 +380,13 @@ msgstr ""
 msgid "      %s  No base translation \"%s\" is included in file!\n"
 msgstr ""
 
 msgid "      %s  No base translation \"%s\" is included in file!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid ""
 "      **FAIL**  %s must be 1284DeviceID!\n"
 "                REF: Page 72, section 5.5\n"
 msgstr ""
 msgid ""
 "      **FAIL**  %s must be 1284DeviceID!\n"
 "                REF: Page 72, section 5.5\n"
 msgstr ""
-"      **EBAÕNN**  1284DeviceId peab olema 1284DeviceID!\n"
+"      **EBAÕNN**  %s peab olema 1284DeviceID!\n"
 "                  Viide: lk 72, sektsioon 5.5\n"
 
 "                  Viide: lk 72, sektsioon 5.5\n"
 
-#, fuzzy, c-format
 msgid ""
 "      **FAIL**  BAD Default%s %s\n"
 "                REF: Page 40, section 4.5.\n"
 msgid ""
 "      **FAIL**  BAD Default%s %s\n"
 "                REF: Page 40, section 4.5.\n"
@@ -436,12 +424,11 @@ msgstr ""
 "      **EBAÕNN**  VIGANE Manufacturer (peab olema \"HP\")\n"
 "                  Viide: lk 211, tabel D.1.\n"
 
 "      **EBAÕNN**  VIGANE Manufacturer (peab olema \"HP\")\n"
 "                  Viide: lk 211, tabel D.1.\n"
 
-#, fuzzy
 msgid ""
 "      **FAIL**  BAD Manufacturer (should be \"Oki\")\n"
 "                REF: Page 211, table D.1.\n"
 msgstr ""
 msgid ""
 "      **FAIL**  BAD Manufacturer (should be \"Oki\")\n"
 "                REF: Page 211, table D.1.\n"
 msgstr ""
-"      **EBAÕNN**  VIGANE Manufacturer (peab olema \"HP\")\n"
+"      **EBAÕNN**  VIGANE Manufacturer (peab olema \"Oki\")\n"
 "                  Viide: lk 211, tabel D.1.\n"
 
 #, c-format
 "                  Viide: lk 211, tabel D.1.\n"
 
 #, c-format
@@ -489,19 +476,14 @@ msgstr ""
 "      **EBAÕNN**  Vigane %s valik %s!\n"
 "                  Viide: lk 84, sektsioon 5.9\n"
 
 "      **EBAÕNN**  Vigane %s valik %s!\n"
 "                  Viide: lk 84, sektsioon 5.9\n"
 
-#, fuzzy, c-format
 msgid "      **FAIL**  Bad LanguageEncoding %s - must be ISOLatin1!\n"
 msgid "      **FAIL**  Bad LanguageEncoding %s - must be ISOLatin1!\n"
-msgstr "      **EBAÕNN**  Vigane keel \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
-msgstr "      **EBAÕNN**  Vigane keel \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgstr ""
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgstr ""
-"      **EBAÕNN**  Vaikimisi tõlkestring võtmele %s sisaldab 8-bitiseid "
-"märke!\n"
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -669,9 +651,8 @@ msgstr ""
 "      **EBAÕNN**  VAJALIK ShortNickName\n"
 "                  Viide: lk 64-65, sektsioon 5.3.\n"
 
 "      **EBAÕNN**  VAJALIK ShortNickName\n"
 "                  Viide: lk 64-65, sektsioon 5.3.\n"
 
-#, fuzzy, c-format
 msgid "    %d ERRORS FOUND\n"
 msgid "    %d ERRORS FOUND\n"
-msgstr "    %d VIGA%s LEITUD\n"
+msgstr ""
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -1190,21 +1171,17 @@ msgstr "Vigane job-state väärtus!"
 msgid "Bad job-uri attribute \"%s\"!"
 msgstr "Vigane job-uri atribuut \"%s\"!"
 
 msgid "Bad job-uri attribute \"%s\"!"
 msgstr "Vigane job-uri atribuut \"%s\"!"
 
-#, fuzzy, c-format
 msgid "Bad notify-pull-method \"%s\"!"
 msgid "Bad notify-pull-method \"%s\"!"
-msgstr "Vigane port-monitor \"%s\"!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "Bad notify-recipient-uri URI \"%s\"!"
 msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr "Vigane port-monitor \"%s\"!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "Bad number-up value %d."
 msgid "Bad number-up value %d."
-msgstr "Vigane koopiate väärtus %d."
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "Bad option + choice on line %d!"
 msgid "Bad option + choice on line %d!"
-msgstr "Vigane võti + valik real %d!\n"
+msgstr ""
 
 #, c-format
 msgid "Bad page-ranges values %d-%d."
 
 #, c-format
 msgid "Bad page-ranges values %d-%d."
@@ -1222,9 +1199,8 @@ msgstr "Vigane printer-state väärtus %d!"
 msgid "Bad request version number %d.%d!"
 msgstr "Vigane soovi versiooninumber %d.%d!"
 
 msgid "Bad request version number %d.%d!"
 msgstr "Vigane soovi versiooninumber %d.%d!"
 
-#, fuzzy
 msgid "Bad subscription ID!"
 msgid "Bad subscription ID!"
-msgstr "Tellimusi ei leitud."
+msgstr ""
 
 msgid "Banners"
 msgstr "Bännerid"
 
 msgid "Banners"
 msgstr "Bännerid"
@@ -1294,17 +1270,14 @@ msgstr ""
 msgid "Door open."
 msgstr ""
 
 msgid "Door open."
 msgstr ""
 
-#, fuzzy, c-format
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: %ld: (canceled:%ld)\n"
 msgid "ERROR: %ld: (canceled:%ld)\n"
-msgstr "lprm: tööde katkestamine ei ole võimalik!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
 
 #, c-format
 msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
@@ -1322,9 +1295,8 @@ msgstr ""
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr ""
 
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "Vigane device-uri \"%s\"!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Bad charset file %s\n"
 
 #, c-format
 msgid "ERROR: Bad charset file %s\n"
@@ -1360,9 +1332,8 @@ msgstr ""
 msgid "ERROR: Duplicate %%Pages: comment seen!\n"
 msgstr ""
 
 msgid "ERROR: Duplicate %%Pages: comment seen!\n"
 msgstr ""
 
-#, fuzzy
 msgid "ERROR: Empty print file!\n"
 msgid "ERROR: Empty print file!\n"
-msgstr "PPD-faili kopeerimine ebaõnnestus!"
+msgstr ""
 
 msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
 msgstr ""
 
 msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
 msgstr ""
@@ -1406,9 +1377,8 @@ msgstr ""
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr ""
 
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr ""
 
-#, fuzzy
 msgid "ERROR: Printer not responding!\n"
 msgid "ERROR: Printer not responding!\n"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Remote host did not accept control file (%d)\n"
 
 #, c-format
 msgid "ERROR: Remote host did not accept control file (%d)\n"
@@ -1418,89 +1388,68 @@ msgstr ""
 msgid "ERROR: Remote host did not accept data file (%d)\n"
 msgstr ""
 
 msgid "ERROR: Remote host did not accept data file (%d)\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to add file %d to job: %s\n"
 msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to cancel job %d: %s\n"
 msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr "lprm: tööde katkestamine ei ole võimalik!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to create temporary file - %s.\n"
 msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to create temporary file: %s\n"
 msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr "%s: ei õnnestu saada ühendust serveriga: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr "Protsessi harutamine ebaõnnestus!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr "cupsaddsmb: puudub PPD-fail printerile \"%s\" - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "Printeri atribuutide hankimine ebaõnnestus!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr "Printeri oleku hankimine ebaõnnestus:"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to locate printer '%s'!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr "Printeri muutmine ebaõnnestus:"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open \"%s\" - %s\n"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "lp: ei õnnestu ligipääs \"%s\" - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open %s: %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open file \"%s\": %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy
 msgid "ERROR: Unable to open image file for printing!\n"
 msgid "ERROR: Unable to open image file for printing!\n"
-msgstr "lpoptions: ei õnnestu avada PPD-faili %s jaoks!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open print file %s - %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "lpadmin: ei õnnestu avada PPD-faili \"%s\" - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open print file %s: %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr "lp: ei õnnestu trükkida faili: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
 
 #, c-format
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
@@ -1510,33 +1459,28 @@ msgstr ""
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
 msgstr ""
 
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to send print data (%d)\n"
 msgid "ERROR: Unable to send print data (%d)\n"
-msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr ""
 
 
 #, c-format
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to write print data: %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
-msgstr "lp: ei õnnestu trükkida faili: %s\n"
+msgstr ""
 
 
-#, fuzzy
 msgid "ERROR: Unable to write raster data to driver!\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr "Printeri atribuutide hankimine ebaõnnestus!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
 msgstr ""
 
 
 #, c-format
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unknown file order \"%s\"\n"
 
 #, c-format
 msgid "ERROR: Unknown file order \"%s\"\n"
@@ -1546,17 +1490,14 @@ msgstr ""
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr ""
 
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "cupsd: tundmatu võti \"%c\" - loobutakse!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown print mode \"%s\"\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown version option value \"%s\"!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
 
 #, c-format
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
@@ -1587,9 +1528,8 @@ msgstr ""
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr ""
 
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: pictwpstops exited with status %d!\n"
 msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr "cupsaddsmb ebaõnnestus olekuga %d"
+msgstr ""
 
 msgid ""
 "ERROR: recoverable: Unable to connect to printer; will retry in 30 "
 
 msgid ""
 "ERROR: recoverable: Unable to connect to printer; will retry in 30 "
@@ -1603,9 +1543,8 @@ msgstr ""
 msgid "Edit Configuration File"
 msgstr "Seadistustefaili muutmine"
 
 msgid "Edit Configuration File"
 msgstr "Seadistustefaili muutmine"
 
-#, fuzzy
 msgid "Empty PPD file!"
 msgid "Empty PPD file!"
-msgstr "PPD-faili kopeerimine ebaõnnestus!"
+msgstr ""
 
 msgid "Ending Banner"
 msgstr "Lõpetav bänner"
 
 msgid "Ending Banner"
 msgstr "Lõpetav bänner"
@@ -1619,14 +1558,11 @@ msgstr "Parool teist korda:"
 msgid "Enter password:"
 msgstr "Parool:"
 
 msgid "Enter password:"
 msgstr "Parool:"
 
-#, fuzzy
 msgid ""
 "Enter your username and password or the root username and password to access "
 "this page. If you are using Kerberos authentication, make sure you have a "
 "valid Kerberos ticket."
 msgstr ""
 msgid ""
 "Enter your username and password or the root username and password to access "
 "this page. If you are using Kerberos authentication, make sure you have a "
 "valid Kerberos ticket."
 msgstr ""
-"Selle lehekülje avamiseks andke enda või administraatori (root) kasutajanimi "
-"ja parool."
 
 msgid "Error Policy"
 msgstr "Veareegel"
 
 msgid "Error Policy"
 msgstr "Veareegel"
@@ -1671,9 +1607,8 @@ msgstr "Abi"
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
 msgstr ""
 
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "INFO: Attempting to connect to host %s on port %d\n"
 msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "lpstat: ei õnnestu saada ühendust serveriga %s pordis %d: %s\n"
+msgstr ""
 
 msgid "INFO: Canceling print job...\n"
 msgstr ""
 
 msgid "INFO: Canceling print job...\n"
 msgstr ""
@@ -1826,9 +1761,8 @@ msgstr "Tööd nr %d ei ole olemas!"
 msgid "Job #%d is already aborted - can't cancel."
 msgstr "Tööst nr %d on juba loobutud - enam ei saa katkestada."
 
 msgid "Job #%d is already aborted - can't cancel."
 msgstr "Tööst nr %d on juba loobutud - enam ei saa katkestada."
 
-#, fuzzy, c-format
 msgid "Job #%d is already canceled - can't cancel."
 msgid "Job #%d is already canceled - can't cancel."
-msgstr "Töö nr %d on juba katkestatud - enam ei saa katkestada."
+msgstr ""
 
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
 
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
@@ -1858,20 +1792,17 @@ msgstr "Tööd nr %s ei ole olemas!"
 msgid "Job %d not found!"
 msgstr "Tööd %d ei leitud!"
 
 msgid "Job %d not found!"
 msgstr "Tööd %d ei leitud!"
 
-#, fuzzy
 msgid "Job Completed"
 msgid "Job Completed"
-msgstr "lõpetatud"
+msgstr ""
 
 msgid "Job Created"
 msgstr ""
 
 
 msgid "Job Created"
 msgstr ""
 
-#, fuzzy
 msgid "Job Options Changed"
 msgid "Job Options Changed"
-msgstr "Töötoiming ebaõnnestus:"
+msgstr ""
 
 
-#, fuzzy
 msgid "Job Stopped"
 msgid "Job Stopped"
-msgstr "peatatud"
+msgstr ""
 
 msgid "Job is completed and cannot be changed."
 msgstr "Töö on lõpetatud ja seda ei saa muuta."
 
 msgid "Job is completed and cannot be changed."
 msgstr "Töö on lõpetatud ja seda ei saa muuta."
@@ -1907,9 +1838,8 @@ msgstr "Trükimaterjali allikas"
 msgid "Media Type"
 msgstr "Trükimaterjali tüüp"
 
 msgid "Media Type"
 msgstr "Trükimaterjali tüüp"
 
-#, fuzzy
 msgid "Media jam!"
 msgid "Media jam!"
-msgstr "Trükimaterjali tüüp"
+msgstr ""
 
 msgid "Media tray almost empty."
 msgstr ""
 
 msgid "Media tray almost empty."
 msgstr ""
@@ -1932,9 +1862,8 @@ msgstr "Puudub PPD-Adobe-4.x päis"
 msgid "Missing asterisk in column 1"
 msgstr "Puudub tärn veerus 1"
 
 msgid "Missing asterisk in column 1"
 msgstr "Puudub tärn veerus 1"
 
-#, fuzzy, c-format
 msgid "Missing double quote on line %d!"
 msgid "Missing double quote on line %d!"
-msgstr "Puuduvad topeltjutumärgid real %d!\n"
+msgstr ""
 
 msgid "Missing form variable!"
 msgstr "Puudub vormi muutuja!"
 
 msgid "Missing form variable!"
 msgstr "Puudub vormi muutuja!"
@@ -1948,9 +1877,8 @@ msgstr "Puudub requesting-user-name atribuut!"
 msgid "Missing required attributes!"
 msgstr "Nõutud atribuudid puuduvad!"
 
 msgid "Missing required attributes!"
 msgstr "Nõutud atribuudid puuduvad!"
 
-#, fuzzy, c-format
 msgid "Missing value on line %d!"
 msgid "Missing value on line %d!"
-msgstr "Puudub väärtus real %d!\n"
+msgstr ""
 
 msgid "Missing value string"
 msgstr "Puudub väärtusestring"
 
 msgid "Missing value string"
 msgstr "Puudub väärtusestring"
@@ -2023,9 +1951,8 @@ msgstr "Tellimusi ei leitud."
 msgid "None"
 msgstr "Puudub"
 
 msgid "None"
 msgstr "Puudub"
 
-#, fuzzy
 msgid "Not allowed to print."
 msgid "Not allowed to print."
-msgstr "Vaikimisi printer puudub"
+msgstr ""
 
 msgid "OK"
 msgstr "OK"
 
 msgid "OK"
 msgstr "OK"
@@ -2102,28 +2029,23 @@ msgstr "Trükitöö:"
 msgid "Print Test Page"
 msgstr "Testlehekülje trükkimine"
 
 msgid "Print Test Page"
 msgstr "Testlehekülje trükkimine"
 
-#, fuzzy
 msgid "Printer Added"
 msgid "Printer Added"
-msgstr "Printer"
+msgstr ""
 
 
-#, fuzzy
 msgid "Printer Deleted"
 msgid "Printer Deleted"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
 
 msgid "Printer Maintenance"
 msgstr "Printeri hooldus"
 
 
 msgid "Printer Maintenance"
 msgstr "Printeri hooldus"
 
-#, fuzzy
 msgid "Printer Modified"
 msgid "Printer Modified"
-msgstr "Printeri hooldus"
+msgstr ""
 
 
-#, fuzzy
 msgid "Printer Stopped"
 msgid "Printer Stopped"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
 
 
-#, fuzzy
 msgid "Printer off-line."
 msgid "Printer off-line."
-msgstr "Printeri hooldus"
+msgstr ""
 
 msgid "Printer:"
 msgstr "Printer:"
 
 msgid "Printer:"
 msgstr "Printer:"
@@ -2173,9 +2095,8 @@ msgstr "Lubatud kasutajate määramine"
 msgid "Set As Default"
 msgstr "Määra vaikeväärtuseks"
 
 msgid "Set As Default"
 msgstr "Määra vaikeväärtuseks"
 
-#, fuzzy
 msgid "Set Class Options"
 msgid "Set Class Options"
-msgstr "Printeri valikute määramine"
+msgstr ""
 
 msgid "Set Printer Options"
 msgstr "Printeri valikute määramine"
 
 msgid "Set Printer Options"
 msgstr "Printeri valikute määramine"
@@ -2250,13 +2171,10 @@ msgid ""
 msgstr ""
 "printer-uri peab olema kujul \"ipp://MASINANIMI/printers/PRINTERINIMI\"."
 
 msgstr ""
 "printer-uri peab olema kujul \"ipp://MASINANIMI/printers/PRINTERINIMI\"."
 
-#, fuzzy
 msgid ""
 "The subscription name may not contain spaces, slashes (/), question marks "
 "(?), or the pound sign (#)."
 msgstr ""
 msgid ""
 "The subscription name may not contain spaces, slashes (/), question marks "
 "(?), or the pound sign (#)."
 msgstr ""
-"Klassi nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei tohi "
-"sisalduda tühikuid, kaldkriipse (/) ega trelle (#)."
 
 msgid "Toner low."
 msgstr ""
 
 msgid "Toner low."
 msgstr ""
@@ -2267,9 +2185,8 @@ msgstr "Liiga palju aktiivseid täid."
 msgid "Unable to access cupsd.conf file:"
 msgstr "Ligipääs failile cupsd.conf ebaõnnestus:"
 
 msgid "Unable to access cupsd.conf file:"
 msgstr "Ligipääs failile cupsd.conf ebaõnnestus:"
 
-#, fuzzy
 msgid "Unable to add RSS subscription:"
 msgid "Unable to add RSS subscription:"
-msgstr "Printeri lisamine ebaõnnestus:"
+msgstr ""
 
 msgid "Unable to add class:"
 msgstr "Klassi lisamine ebaõnnestus:"
 
 msgid "Unable to add class:"
 msgstr "Klassi lisamine ebaõnnestus:"
@@ -2284,9 +2201,8 @@ msgstr "Printeri lisamine ebaõnnestus:"
 msgid "Unable to allocate memory for file types!"
 msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
 
 msgid "Unable to allocate memory for file types!"
 msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
 
-#, fuzzy
 msgid "Unable to cancel RSS subscription:"
 msgid "Unable to cancel RSS subscription:"
-msgstr "Printeri muutmine ebaõnnestus:"
+msgstr ""
 
 msgid "Unable to change printer-is-shared attribute:"
 msgstr "Atribuudi printer-is-shared muutmine ebaõnnestus:"
 
 msgid "Unable to change printer-is-shared attribute:"
 msgstr "Atribuudi printer-is-shared muutmine ebaõnnestus:"
@@ -2393,16 +2309,14 @@ msgstr "Faili cupsd.conf avaline ebaõnnestus:"
 msgid "Unable to print test page:"
 msgstr "Testlehekülje trükkimine ebaõnnestus:"
 
 msgid "Unable to print test page:"
 msgstr "Testlehekülje trükkimine ebaõnnestus:"
 
-#, fuzzy, c-format
 msgid "Unable to run \"%s\": %s\n"
 msgid "Unable to run \"%s\": %s\n"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
 
 msgid "Unable to send maintenance job:"
 msgstr "Hooldustöö saatmine ebaõnnestus:"
 
 
 msgid "Unable to send maintenance job:"
 msgstr "Hooldustöö saatmine ebaõnnestus:"
 
-#, fuzzy, c-format
 msgid "Unable to set Windows printer driver (%d)!"
 msgid "Unable to set Windows printer driver (%d)!"
-msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
+msgstr ""
 
 msgid "Unable to set options:"
 msgstr "Valikute määramine ebaõnnestus:"
 
 msgid "Unable to set options:"
 msgstr "Valikute määramine ebaõnnestus:"
@@ -2413,9 +2327,8 @@ msgstr "Faili cupsd.conf üleslaadimine ebaõnnestus:"
 msgid "Unknown"
 msgstr "Teadmata"
 
 msgid "Unknown"
 msgstr "Teadmata"
 
-#, fuzzy, c-format
 msgid "Unknown printer error (%s)!"
 msgid "Unknown printer error (%s)!"
-msgstr "Tundmatu printer-error-policy  \"%s\"."
+msgstr ""
 
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
 
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
@@ -2632,9 +2545,8 @@ msgstr ""
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr ""
 
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "lp: võtme -f järel oodati vormi!\n"
+msgstr ""
 
 msgid "WARNING: Couldn't create read channel\n"
 msgstr ""
 
 msgid "WARNING: Couldn't create read channel\n"
 msgstr ""
@@ -2676,17 +2588,14 @@ msgid ""
 "Conventions and may not print correctly!\n"
 msgstr ""
 
 "Conventions and may not print correctly!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "WARNING: Unknown option \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "%s: tundmatu võti '%c'!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "Toetamata vorming '%s'!"
+msgstr ""
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -2730,13 +2639,11 @@ msgstr "cups-driverd käivitamine ebaõnnestus."
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: puudub PPD-fail printerile \"%s\" - %s\n"
 
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: puudub PPD-fail printerile \"%s\" - %s\n"
 
-#, fuzzy, c-format
 msgid "cupsctl: Unknown option \"%s\"!\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cancel: tundmatu võti '%c'!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "cupsctl: Unknown option \"-%c\"!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr "cancel: tundmatu võti '%c'!\n"
+msgstr ""
 
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgstr "cupsd: võtme \"-c\" järel oodati seadistustefaili nime!\n"
 
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgstr "cupsd: võtme \"-c\" järel oodati seadistustefaili nime!\n"
@@ -2976,9 +2883,8 @@ msgstr "lpoptions: printerit polegi!?!\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: ei õnnestu lisada printerit või isendit: %s\n"
 
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: ei õnnestu lisada printerit või isendit: %s\n"
 
-#, fuzzy, c-format
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: ei õnnestu avada PPD-faili %s jaoks!\n"
+msgstr ""
 
 #, c-format
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 
 #, c-format
 msgid "lpoptions: Unable to open PPD file for %s!\n"
@@ -3133,621 +3039,3 @@ msgstr "teadmata"
 
 msgid "untitled"
 msgstr "nimeta"
 
 msgid "untitled"
 msgstr "nimeta"
-
-#~ msgid "      **FAIL**  %s %s does not exist!\n"
-#~ msgstr "      **EBAÕNN**  %s %s ei ole olemas!\n"
-
-#~ msgid ""
-#~ "      **FAIL**  1284DeviceId must be 1284DeviceID!\n"
-#~ "                REF: Page 72, section 5.5\n"
-#~ msgstr ""
-#~ "      **EBAÕNN**  1284DeviceId peab olema 1284DeviceID!\n"
-#~ "                  Viide: lk 72, sektsioon 5.5\n"
-
-#, fuzzy
-#~ msgid "      **FAIL**  Bad UTF-8 \"%s\" translation string for option %s!\n"
-#~ msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s!\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "      **FAIL**  Bad UTF-8 \"%s\" translation string for option %s, choice "
-#~ "%s!\n"
-#~ msgstr ""
-#~ "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
-
-#~ msgid "      **FAIL**  Bad cupsFilter value \"%s\"!\n"
-#~ msgstr "      **EBAÕNN**  Vigane cupsFilter väärtus \"%s\"!\n"
-
-#~ msgid "      **FAIL**  Bad language \"%s\"!\n"
-#~ msgstr "      **EBAÕNN**  Vigane keel \"%s\"!\n"
-
-#~ msgid "      **FAIL**  Missing \"%s\" translation string for option %s!\n"
-#~ msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s!\n"
-
-#~ msgid ""
-#~ "      **FAIL**  Missing \"%s\" translation string for option %s, choice %"
-#~ "s!\n"
-#~ msgstr ""
-#~ "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
-
-#~ msgid "    %d ERROR%s FOUND\n"
-#~ msgstr "    %d VIGA%s LEITUD\n"
-
-#~ msgid "%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s võtab soove vastu alates 01. jaan 00:00\n"
-
-#~ msgid ""
-#~ "%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s ei võta soove vastu alates 01. jaan 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s/%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s/%s võtab soove vastu alates 01. jaan 00:00\n"
-
-#~ msgid ""
-#~ "%s/%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s/%s ei võta soove vastu alates 01. jaan 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s: Expected reason text after -r!\n"
-#~ msgstr "%s: oodati teksti pärast -r!\n"
-
-#~ msgid "%s: Expected server name after -h!\n"
-#~ msgstr "%s: oodati serveri nime pärast -h!\n"
-
-#~ msgid "Auto"
-#~ msgstr "Automaatne"
-
-#~ msgid "Bad option + choice on line %d!\n"
-#~ msgstr "Vigane võti + valik real %d!\n"
-
-#~ msgid "Class"
-#~ msgstr "Klass"
-
-#~ msgid ""
-#~ "Device: uri = %s\n"
-#~ "        class = %s\n"
-#~ "        info = %s\n"
-#~ "        make-and-model = %s\n"
-#~ msgstr ""
-#~ "Seade: uri = %s\n"
-#~ "       klass = %s\n"
-#~ "       info = %s\n"
-#~ "       valmistaja-ja-mudel = %s\n"
-
-#, fuzzy
-#~ msgid "ERROR: %ld: Unable to send print file to printer (canceled:%ld)\n"
-#~ msgstr "lpoptions: ei õnnestu lisada printerit või isendit: %s\n"
-
-#~ msgid ""
-#~ "Enter your username and password or the root username and password to "
-#~ "access this page."
-#~ msgstr ""
-#~ "Selle lehekülje avamiseks andke enda või administraatori (root) "
-#~ "kasutajanimi ja parool."
-
-#~ msgid "Extra"
-#~ msgstr "Ekstra"
-
-#~ msgid "Job #%d doesn't exist!"
-#~ msgstr "Tööd nr %d ei ole olemas!"
-
-#~ msgid "Job #%d is already %s - can't cancel."
-#~ msgstr "Töö nr %d on juba %s - ei saa katkestada."
-
-#~ msgid "Job #%d is already cancelled - can't cancel."
-#~ msgstr "Töö nr %d on juba katkestatud - enam ei saa katkestada."
-
-#~ msgid "Missing double quote on line %d!\n"
-#~ msgstr "Puuduvad topeltjutumärgid real %d!\n"
-
-#~ msgid "Missing value on line %d!\n"
-#~ msgstr "Puudub väärtus real %d!\n"
-
-#~ msgid ""
-#~ "Model:  name = %s\n"
-#~ "        natural_language = %s\n"
-#~ "        make-and-model = %s\n"
-#~ msgstr ""
-#~ "Mudel:  nimi = %s\n"
-#~ "        loomulik_keel = %s\n"
-#~ "        valmistaja-ja-mudel = %s\n"
-
-#~ msgid "No Windows printer drivers are installed!\n"
-#~ msgstr "Ühtegi Windowsi printeridraiverit pole paigaldatud!+n"
-
-#~ msgid "No printer drivers found!"
-#~ msgstr "Printeridraivereid ei leitud!"
-
-#~ msgid "Not authorized to hold job #%d owned by \"%s\"!"
-#~ msgstr "Pole õigust hoida tööd %d, mille omanik on \"%s\"!"
-
-#~ msgid "Printer"
-#~ msgstr "Printer"
-
-#~ msgid "Printer not shared!"
-#~ msgstr "Printer ei ole ühiskasutuses!"
-
-#~ msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
-#~ msgstr "Käivitatakse käsk: %s %s -N -U '%s%%%s' -c '%s'\n"
-
-#~ msgid "The printer-uri \"%s\" is not valid."
-#~ msgstr "printer-uri \"%s\" ei ole korrektne."
-
-#~ msgid "Too many jobs - %d jobs, max jobs is %d."
-#~ msgstr "Liiga palju töid - %d tööd, maksimaalselt võib olla %d."
-
-#~ msgid "Unable to connect to server!"
-#~ msgstr "Ühendumine serveriga ebaõnnestus!"
-
-#~ msgid "Unable to convert PPD file!"
-#~ msgstr "PPD-faili teisendamine ebaõnnestus!"
-
-#~ msgid "Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu kopeerida CUPS-i printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu kopeerida Windows 2000 printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files!"
-#~ msgstr "Windows 2000 printeridraiverifailide kopeerimine ebaõnnestus!"
-
-#~ msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu kopeerida Windows 9x printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to copy Windows 9x printer driver files!"
-#~ msgstr "Windows 9x printeridraiverifailide kopeerimine ebaõnnestus!"
-
-#~ msgid "Unable to execute cupsaddsmb command!"
-#~ msgstr "Käsu cupsaddsmb täitmine ebaõnnestus!"
-
-#~ msgid "Unable to fork process!"
-#~ msgstr "Protsessi harutamine ebaõnnestus!"
-
-#~ msgid "Unable to get PPD file!"
-#~ msgstr "PPD-faili hankimine ebaõnnestus!"
-
-#~ msgid "Unable to get printer attributes!"
-#~ msgstr "Printeri atribuutide hankimine ebaõnnestus!"
-
-#~ msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu paigaldada Windows 2000 printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to install Windows 2000 printer driver files!"
-#~ msgstr "Windows 2000 printeridraiverifailide paigaldamine ebaõnnestus!"
-
-#~ msgid "Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu paigaldada Winodws 9x printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to install Windows 9x printer driver files!"
-#~ msgstr "Windows 9x printeridraiverifailide paigaldamine ebaõnnestus!"
-
-#~ msgid "Unable to set Windows printer driver (%d)!\n"
-#~ msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
-
-#~ msgid "Unable to set Windows printer driver!"
-#~ msgstr "Windowsi printeridraiveri määramine ebaõnnestus!"
-
-#~ msgid ""
-#~ "Usage: cupsaddsmb [options] printer1 ... printerN\n"
-#~ "       cupsaddsmb [options] -a\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "  -H samba-server  Use the named SAMBA server\n"
-#~ "  -U samba-user    Authenticate using the named SAMBA user\n"
-#~ "  -a               Export all printers\n"
-#~ "  -h cups-server   Use the named CUPS server\n"
-#~ "  -v               Be verbose (show commands)\n"
-#~ msgstr ""
-#~ "Kasutamine: cupsaddsmb [võtmed] printer1 ... printerN\n"
-#~ "            cupsaddsmb [võtmed] -a\n"
-#~ "\n"
-#~ "Võtmed:\n"
-#~ "  -H samba-server    määratud SAMBA-serveri kasutamine\n"
-#~ "  -U samba-kasutaja  määratud SAMBA kasutajaga autentimine\n"
-#~ "  -a                 Kõigi printerite eksport\n"
-#~ "  -h cups-server     määratud CUPS-serveri kasutamine\n"
-#~ "  -v                 Häälekus (käskude näitamine)\n"
-
-#~ msgid ""
-#~ "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd"
-#~ "[.gz]]\n"
-#~ "       program | cupstestppd [-q] [-r] [-v[v]] -\n"
-#~ msgstr ""
-#~ "Kasutamine: cupstestppd [-q] [-r] [-v[v]] failinimi1.ppd[.gz] [... "
-#~ "failinimiN.ppd[.gz]]\n"
-#~ "            program | cupstestppd [-q] [-r] [-v[v]] -\n"
-
-#~ msgid "Usage: lpmove job dest\n"
-#~ msgstr "Kasutamine: lpmove töö sihtkoht\n"
-
-#~ msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
-#~ msgstr "Kasutamine: lpq [-P sihtkoht] [-l] [+intervall]\n"
-
-#~ msgid "Variable"
-#~ msgstr "Muutuv"
-
-#~ msgid "Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr "Hoiatus - ühtegi Windows 2000 printeridraiverit pole paigaldatud!\n"
-
-#~ msgid "You are not authorized to alter job id %d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust muuta töö ID-d %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust autentida tööd nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to delete job #%d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust kustutada tööd nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to move job #%d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust liigutada tööd nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to release job id %d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust vabastada tööd ID-ga %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to restart job id %d owned by \"%s\"!"
-#~ msgstr ""
-#~ "Teil pole õigust taaskäivitada tööd ID-ga %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
-#~ msgstr ""
-#~ "Teil pole õigust saata dokumenti tööle nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You must use a https: URL to access this page."
-#~ msgstr "Selle lehekülje avamiseks tuleb kasutada https: URL-i."
-
-#~ msgid "add_class: Unknown printer-error-policy \"%s\"."
-#~ msgstr "add_class: tundmatu printer-error-policy \"%s\"."
-
-#~ msgid "add_class: Unknown printer-op-policy \"%s\"."
-#~ msgstr "add_class: tundmatu printer-op-policy \"%s\"."
-
-#~ msgid "cancel: %s failed: %s\n"
-#~ msgstr "cancel: %s ebaõnnestus: %s\n"
-
-#~ msgid "cancel: Error - expected hostname after '-h' option!\n"
-#~ msgstr "cancel: viga - oodati masinanime pärast võtit '.h'!\n"
-
-#~ msgid "cancel: Error - expected username after '-u' option!\n"
-#~ msgstr "cancel: viga - oodati kasutajanime pärast võtit '-u'!\n"
-
-#~ msgid "cancel: Unable to contact server!\n"
-#~ msgstr "cancel: ei õnnestu saada ühendust serveriga!\n"
-
-#~ msgid "cancel: Unknown destination \"%s\"!\n"
-#~ msgstr "cancel: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "cupsaddsmb crashed on signal %d"
-#~ msgstr "cupsaddsmb elas üle krahhi signaaliga %d"
-
-#~ msgid "cupsaddsmb failed with status %d"
-#~ msgstr "cupsaddsmb ebaõnnestus olekuga %d"
-
-#~ msgid "cupsaddsmb: Bad option + choice on line %d!\n"
-#~ msgstr "cupsaddsmb: vigane võti + valik real %d!\n"
-
-#~ msgid "cupsaddsmb: Missing double quote on line %d!\n"
-#~ msgstr "cupsaddsmb: puuduvad kahekordsed jutumärgid real %d!\n"
-
-#~ msgid "cupsaddsmb: Missing value on line %d!\n"
-#~ msgstr "cupsaddsmb: puudub väärtus real %d!\n"
-
-#~ msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
-#~ msgstr "cupsaddsmb: puudub PPD printerile \"%s\" - jäetakse vahele!\n"
-
-#~ msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
-#~ msgstr "cupsaddsmb: ühtegi Windowsi printeridraiverit pole paigaldatud!\n"
-
-#~ msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestu saada ühendust serveriga \"%s\" %s jaoks - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
-#~ msgstr "cupsaddsmb: ei õnnestunud teisendada PPD-faili %s jaoks - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud kopeerida CUPS-i printeridraiverifaile (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud kopeerida Windows 2000 printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud kopeerida Windows 9x printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud paigaldada Windows 2000 printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud paigaldada Windows 9x printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
-#~ msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
-
-#~ msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud määrata Windowsi printeridraiverit (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: hoiatus - ühtegi Windows 2000 printeridraiverit pole "
-#~ "paigaldatud!\n"
-
-#~ msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
-#~ msgstr "cupsaddsmb: get-printer-attributes ebaõnnestus \"%s\" jaoks: %s\n"
-
-#, fuzzy
-#~ msgid "cupsfilter: Unknown destination MIME type %s/%s!\n"
-#~ msgstr "lpq: tundmatu sihtkoht \"%s/%s\"!\n"
-
-#~ msgid "lp: Error - bad job ID!\n"
-#~ msgstr "lp: viga - vigane töö ID!\n"
-
-#~ msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
-#~ msgstr "lp: viga - faile ei saa trükkida ja töid muuta ühel ajal!\n"
-
-#~ msgid ""
-#~ "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-#~ msgstr ""
-#~ "lp: viga - standardsisendist ei saa trükkida, kui on antud failid või töö "
-#~ "ID!\n"
-
-#~ msgid "lp: Expected character set after -S option!\n"
-#~ msgstr "lp: võtme -S järel oodati märgistikku!\n"
-
-#~ msgid "lp: Expected content type after -T option!\n"
-#~ msgstr "lp: võtme -T järel oodati sisu tüüpi!\n"
-
-#~ msgid "lp: Expected copies after -n option!\n"
-#~ msgstr "lp: võtme -n järel oodati koopiaid!\n"
-
-#~ msgid "lp: Expected destination after -d option!\n"
-#~ msgstr "lp: võtme -d järel oodati sihtkohta!\n"
-
-#~ msgid "lp: Expected form after -f option!\n"
-#~ msgstr "lp: võtme -f järel oodati vormi!\n"
-
-#~ msgid "lp: Expected hold name after -H option!\n"
-#~ msgstr "lp: vätme -H järel oodati hoitava nime!\n"
-
-#~ msgid "lp: Expected hostname after -h option!\n"
-#~ msgstr "lp: võtme -h järel oodati masinanime!\n"
-
-#~ msgid "lp: Expected job ID after -i option!\n"
-#~ msgstr "lp: võtme -i järel oodati töö ID-d!\n"
-
-#~ msgid "lp: Expected mode list after -y option!\n"
-#~ msgstr "lp: võtme -y järel oodati režiimiloendit!\n"
-
-#~ msgid "lp: Expected option string after -o option!\n"
-#~ msgstr "lp. võtme -o järel oodati võtme stringi!\n"
-
-#~ msgid "lp: Expected page list after -P option!\n"
-#~ msgstr "lp: võtme -P järel oodati leheloendit!\n"
-
-#~ msgid "lp: Expected priority after -%c option!\n"
-#~ msgstr "lp: võtme -%c järel oodati prioriteeti!\n"
-
-#~ msgid "lp: Expected title after -t option!\n"
-#~ msgstr "lp: võtme -t järel oodati tiitlit!\n"
-
-#~ msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
-#~ msgstr "lp: enne \"-H restart\" on vajalik töö ID (-i)!\n"
-
-#~ msgid "lp: Priority must be between 1 and 100.\n"
-#~ msgstr "lp: prioriteet peab olema vahemikus 1 kuni 100.\n"
-
-#~ msgid "lp: Too many files - \"%s\"\n"
-#~ msgstr "lp: liiga palju faile - \"%s\"\n"
-
-#~ msgid "lp: Unable to access \"%s\" - %s\n"
-#~ msgstr "lp: ei õnnestu ligipääs \"%s\" - %s\n"
-
-#~ msgid "lp: Unknown option '%c'!\n"
-#~ msgstr "lp: tundmatu võti '%c'!\n"
-
-#~ msgid "lp: Warning - character set option ignored!\n"
-#~ msgstr "lp: hoiatus - märgistikuvõtit ignoreeritakse!\n"
-
-#~ msgid "lp: Warning - content type option ignored!\n"
-#~ msgstr "lp: hoiatus - sisu tüübi võtit ignoreeritakse!\n"
-
-#~ msgid "lp: Warning - mode option ignored!\n"
-#~ msgstr "lp: hoiatus - režiimivõtit ignoreeritakse!\n"
-
-#~ msgid ""
-#~ "lp: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lp: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
-
-#~ msgid "lp: error - no default destination available.\n"
-#~ msgstr "lp: viga - vaikimisi sihtkoht pole saadaval.\n"
-
-#~ msgid "lp: error - scheduler not responding!\n"
-#~ msgstr "lp: viga - ajastaja ei vasta!\n"
-
-#~ msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lp: viga - ei õnnestu kirjutada ajutisse faili \"%s\" - %s\n"
-
-#~ msgid "lp: restart-job failed: %s\n"
-#~ msgstr "lp: restart-job ebaõnnestus: %s\n"
-
-#~ msgid "lp: set-job-attributes failed: %s\n"
-#~ msgstr "lp: set-job-attributes ebaõnnestus: %s\n"
-
-#~ msgid "lp: stdin is empty, so no job has been sent.\n"
-#~ msgstr "lp: standardsisend on tühi, ühtegi tööd ei saadetud.\n"
-
-#~ msgid "lp: unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lp: ei õnnestu luua ajutist faili  \"%s\" - %s\n"
-
-#~ msgid "lp: unable to print file: %s\n"
-#~ msgstr "lp: ei õnnestu trükkida faili: %s\n"
-
-#~ msgid "lpadmin: %s failed: %s\n"
-#~ msgstr "lpadmin: %s ebaõnnestus: %s\n"
-
-#~ msgid "lpadmin: add-printer (set description) failed: %s\n"
-#~ msgstr "lpadmin: add-printer (kirjelduse määramine) ebaõnnestus: %s\n"
-
-#~ msgid "lpadmin: add-printer (set location) failed: %s\n"
-#~ msgstr "lpadmin: add-printer (asukoha määramine) ebaõnnestus: %s\n"
-
-#~ msgid "lpadmin: add-printer (set model) failed: %s\n"
-#~ msgstr "lpadmin: add-printer (mudeli määramine) ebaõnnestus: %s\n"
-
-#~ msgid "lpinfo: cups-get-devices failed: %s\n"
-#~ msgstr "lpinfo: cups-get-devices ebaõnnestus: %s\n"
-
-#~ msgid "lpinfo: cups-get-ppds failed: %s\n"
-#~ msgstr "lpinfo: cups-get-ppds ebaõnnestus: %s\n"
-
-#~ msgid "lpmove: move-job failed: %s\n"
-#~ msgstr "lpmove: move-job ebaõnnestus: %s\n"
-
-#~ msgid "lpoptions: Destination %s has no PPD file!\n"
-#~ msgstr "lpoptions: sihtkohal %s pole PPD-faili!\n"
-
-#~ msgid "lpq: Unable to contact server!\n"
-#~ msgstr "lpq: serveriga ei õnnestu ühendust luua!\n"
-
-#~ msgid "lpq: Unknown destination \"%s\"!\n"
-#~ msgstr "lpq: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "lpq: error - no default destination available.\n"
-#~ msgstr "lpq: viga - vaikimisi sihtkoht pole saadaval.\n"
-
-#~ msgid "lpq: get-jobs failed: %s\n"
-#~ msgstr "lpq: get-jobs ebaõnnestus: %s\n"
-
-#~ msgid "lpq: get-printer-attributes failed: %s\n"
-#~ msgstr "lpq: get-printer-attributes ebaõnnestus: %s\n"
-
-#~ msgid ""
-#~ "lpr: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lpr: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
-
-#~ msgid "lpr: error - expected copy count after -# option!\n"
-#~ msgstr "lpr: viga - oodati koopiate arvu pärast võtit -#!\n"
-
-#~ msgid "lpr: error - expected destination after -P option!\n"
-#~ msgstr "lpr: viga - oodati sihtkohta pärast võtit -P!\n"
-
-#~ msgid "lpr: error - expected name after -%c option!\n"
-#~ msgstr "lpr: viga - oodati nime pärast võtit -%c!\n"
-
-#~ msgid "lpr: error - expected option=value after -o option!\n"
-#~ msgstr "lpr: viga - oodati võti=väärtus pärast võtit -o!\n"
-
-#~ msgid "lpr: error - expected username after -U option!\n"
-#~ msgstr "lpr: viga - oodati kasutajanime pärast võtit -U!\n"
-
-#~ msgid "lpr: error - expected value after -%c option!\n"
-#~ msgstr "lpr: viga - oodati väärust pärast võtit -%c!\n"
-
-#~ msgid "lpr: error - no default destination available.\n"
-#~ msgstr "lpr: viga - vaikimisi sihtkoht pole saadaval.\n"
-
-#~ msgid "lpr: error - scheduler not responding!\n"
-#~ msgstr "lpr: viga - ajastaja ei vasta!\n"
-
-#~ msgid "lpr: error - stdin is empty, so no job has been sent.\n"
-#~ msgstr "lpr: viga - standardsisend on tühi, ühtegi tööd ei ole saadetud.\n"
-
-#~ msgid "lpr: error - too many files - \"%s\"\n"
-#~ msgstr "lpr: viga - liiga palju faile - \"%s\"\n"
-
-#~ msgid "lpr: error - unable to access \"%s\" - %s\n"
-#~ msgstr "lpr: viga - ligipääs asukohale \"%s\" ebaõnnestus - %s\n"
-
-#~ msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: viga - ei õnnestu luua ajutist faili \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unable to print file: %s\n"
-#~ msgstr "lpr: viga - ei õnnestu trükkida faili: %s\n"
-
-#~ msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: viga - ei õnnestu kirjutada ajutist faili \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unknown option '%c'!\n"
-#~ msgstr "lpr: viga - tundmatu võti '%c'!\n"
-
-#~ msgid ""
-#~ "lpr: warning - '%c' format modifier not supported - output may not be "
-#~ "correct!\n"
-#~ msgstr ""
-#~ "lpr: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib "
-#~ "olla vigane!\n"
-
-#~ msgid "lpr: warning - email notification is not currently supported!\n"
-#~ msgstr "lpr: hoiatus - märguanne e-postiga pole veel toetatud!\n"
-
-#~ msgid "lprm: Job or printer not found!\n"
-#~ msgstr "lprm: tööd või printerit ei leitud!\n"
-
-#~ msgid "lprm: Not authorized to lprm job(s)!\n"
-#~ msgstr "lprm: pole õigust lprm töid!\n"
-
-#~ msgid "lprm: Unable to cancel job(s)!\n"
-#~ msgstr "lprm: tööde katkestamine ei ole võimalik!\n"
-
-#~ msgid "lprm: Unable to lprm job(s)!\n"
-#~ msgstr "lprm: tööde lprm ei ole võimalik!\n"
-
-#~ msgid "lprm: Unknown destination \"%s\"!\n"
-#~ msgstr "lprm: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "lprm: Unknown option '%c'!\n"
-#~ msgstr "lprm: tundmatu võti '%c'!\n"
-
-#~ msgid "lprm: You don't own job ID %d!\n"
-#~ msgstr "lprm: töö ID %d ei kuulu Teile!\n"
-
-#~ msgid "lpstat: Invalid destination name in list \"%s\"!\n"
-#~ msgstr "lpstat: vigane sihtkoha nimi loendis \"%s\"!\n"
-
-#~ msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
-#~ msgstr "lpstat: pärast -W on vajalik \"completed\" või \"not-completed\"!\n"
-
-#~ msgid ""
-#~ "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-#~ msgstr ""
-#~ "lpstat: pärast -W on vajalik \"completed\", \"not-completed\" või \"all"
-#~ "\"!\n"
-
-#~ msgid "lpstat: The -b option requires a destination argument.\n"
-#~ msgstr "lpstat: võti -b nõuab sihtkoha argumenti.\n"
-
-#~ msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
-#~ msgstr "lpstat: ei õnnestu saada ühendust serveriga %s pordis %d: %s\n"
-
-#~ msgid "lpstat: Unknown destination \"%s\"!\n"
-#~ msgstr "lpstat: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "lpstat: Unknown option '%c'!\n"
-#~ msgstr "lpstat: tundmatu võti '%c'!\n"
-
-#~ msgid "lpstat: get-classes failed: %s\n"
-#~ msgstr "lpstat: get-classes ebaõnnestus: %s\n"
-
-#~ msgid "lpstat: get-jobs failed: %s\n"
-#~ msgstr "lpstat: get-jobs ebaõnnestus: %s\n"
-
-#~ msgid "lpstat: get-printers failed: %s\n"
-#~ msgstr "lpstat: get-printers ebaõnnestus: %s\n"
index 4d0ff8899a123c918b09730befb39d0bffdd4a08..4a3739de3e40fa27a475620164ce8b1c5f789805 100644 (file)
@@ -157,7 +157,7 @@ msgstr "        WARN    ShortNickName requis par spec. PPD 4.3\n
 msgid "      %s  %s %s does not exist!\n"
 msgstr "      %s  %s %s n’existe pas.\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
 msgid "      %s  %s %s does not exist!\n"
 msgstr "      %s  %s %s n’existe pas.\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr "      Traduction « %s » UTF-8 erronée pour l’option %s.\n"
+msgstr "      %s  Traduction « %s » UTF-8 erronée pour l’option %s.\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
 msgstr "      %s  Traduction « %s » UTF-8 erronée pour l’option %s, choix %s.\n"
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
 msgstr "      %s  Traduction « %s » UTF-8 erronée pour l’option %s, choix %s.\n"
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
@@ -181,7 +181,7 @@ msgstr "      %s  Option manquante %s dans UIConstraint \"*%s %s *%s %s\".\n"
 msgid "      %s  No base translation \"%s\" is included in file!\n"
 msgstr "      %s  Aucune traduction de base « %s » n’est comprise dans le fichier.\n"
 msgid "      **FAIL**  %s must be 1284DeviceID!\n                REF: Page 72, section 5.5\n"
 msgid "      %s  No base translation \"%s\" is included in file!\n"
 msgstr "      %s  Aucune traduction de base « %s » n’est comprise dans le fichier.\n"
 msgid "      **FAIL**  %s must be 1284DeviceID!\n                REF: Page 72, section 5.5\n"
-msgstr "      **FAIL**  1284DeviceId doit être 1284DeviceID!\n                REF: Page 72, rubrique 5.5\n"
+msgstr "      **FAIL**  %s doit être 1284DeviceID!\n                REF: Page 72, rubrique 5.5\n"
 msgid "      **FAIL**  BAD Default%s %s\n                REF: Page 40, section 4.5.\n"
 msgstr "      **FAIL**  Default%s %s ERRONÉ\n                REF: Page 40, rubrique 4.5.\n"
 msgid "      **FAIL**  BAD DefaultImageableArea %s!\n                REF: Page 102, section 5.15.\n"
 msgid "      **FAIL**  BAD Default%s %s\n                REF: Page 40, section 4.5.\n"
 msgstr "      **FAIL**  Default%s %s ERRONÉ\n                REF: Page 40, rubrique 4.5.\n"
 msgid "      **FAIL**  BAD DefaultImageableArea %s!\n                REF: Page 102, section 5.15.\n"
@@ -211,7 +211,7 @@ msgstr "      **FAIL**  langue erronée ˝%s˝.\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgstr "      **FAIL**  langue erronée ˝%s˝ - doit être en français.\n"
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgstr "      **FAIL**  langue erronée ˝%s˝ - doit être en français.\n"
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
-msgstr "      **FAIL**  Le code d’option par défaut ne peut être interprété :\n"
+msgstr "      **FAIL**  Le code d’option par défaut ne peut être interprété : %s\n"
 msgid "      **FAIL**  Default translation string for option %s choice %s contains 8-bit characters!\n"
 msgstr "      **FAIL**  La chaîne de traduction par défaut pour le choix %s d’option %s contient des caractères 8 bits.\n"
 msgid "      **FAIL**  Default translation string for option %s contains 8-bit characters!\n"
 msgid "      **FAIL**  Default translation string for option %s choice %s contains 8-bit characters!\n"
 msgstr "      **FAIL**  La chaîne de traduction par défaut pour le choix %s d’option %s contient des caractères 8 bits.\n"
 msgid "      **FAIL**  Default translation string for option %s contains 8-bit characters!\n"
@@ -459,7 +459,7 @@ msgstr "Ajouter abonnement RSS"
 msgid "Administration"
 msgstr "Administration"
 msgid "Attempt to set %s printer-state to bad value %d!"
 msgid "Administration"
 msgstr "Administration"
 msgid "Attempt to set %s printer-state to bad value %d!"
-msgstr "Tentative d’atribution d’une valeur erronée au paramètre « printer-state » : %d."
+msgstr "Tentative d’atribution %s d’une valeur erronée au paramètre « printer-state » : %d."
 msgid "Attribute groups are out of order (%x < %x)!"
 msgstr "Les groupes d’attributs ne sont pas dans le bon ordre (%x < %x)."
 msgid "Bad OpenGroup"
 msgid "Attribute groups are out of order (%x < %x)!"
 msgstr "Les groupes d’attributs ne sont pas dans le bon ordre (%x < %x)."
 msgid "Bad OpenGroup"
@@ -497,7 +497,7 @@ msgstr "Intervalle de pages erroné : %d-%d."
 msgid "Bad port-monitor \"%s\"!"
 msgstr "Valeur erronée pour le paramètre « port-monitor » : « %s »."
 msgid "Bad printer-state value %d!"
 msgid "Bad port-monitor \"%s\"!"
 msgstr "Valeur erronée pour le paramètre « port-monitor » : « %s »."
 msgid "Bad printer-state value %d!"
-msgstr "Valeur erronée pour le paramètre « printer-state » : « %s »."
+msgstr "Valeur erronée pour le paramètre « printer-state » : « %d »."
 msgid "Bad request version number %d.%d!"
 msgstr "La requête a un numéro de version erroné : %d.%d."
 msgid "Bad subscription ID!"
 msgid "Bad request version number %d.%d!"
 msgstr "La requête a un numéro de version erroné : %d.%d."
 msgid "Bad subscription ID!"
@@ -535,11 +535,11 @@ msgstr "Matériel :   URI = %s\n          classe = %s\n            info = %s\n
 msgid "Door open."
 msgstr "Porte ouverte."
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
 msgid "Door open."
 msgstr "Porte ouverte."
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr "URG : impossible d’allouer de la mémoire pour les informations de la page."
+msgstr "EMERG: impossible d’allouer de la mémoire pour les informations de la page: %s"
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr "URG : impossible d’allouer de la mémoire pour l’étalage des pages."
+msgstr "EMERG: impossible d’allouer de la mémoire pour l’étalage des pages: %s"
 msgid "ERROR: %ld: (canceled:%ld)\n"
 msgid "ERROR: %ld: (canceled:%ld)\n"
-msgstr "ERREUR : %ld: (annulé:%ld)\n"
+msgstr "ERROR: %ld: (annulé:%ld)\n"
 msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
 msgstr "ERROR: %%BoundingBox erroné : commentaire vu.\n"
 msgid "ERROR: Bad %%IncludeFeature: comment!\n"
 msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
 msgstr "ERROR: %%BoundingBox erroné : commentaire vu.\n"
 msgid "ERROR: Bad %%IncludeFeature: comment!\n"
@@ -549,7 +549,7 @@ msgstr "ERROR: %%Page erroné : commentaire dans le fichier.\n"
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr "ERROR: %%PageBoundingBox erroné : commentaire dans le fichier.\n"
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr "ERROR: %%PageBoundingBox erroné : commentaire dans le fichier.\n"
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "ERREUR : fichier d’appareil SCSI erroné ˝%s˝.\n"
+msgstr "ERROR: fichier d’appareil SCSI erroné ˝%s˝.\n"
 msgid "ERROR: Bad charset file %s\n"
 msgstr "ERROR: fichier charset %s erroné\n"
 msgid "ERROR: Bad charset type %s\n"
 msgid "ERROR: Bad charset file %s\n"
 msgstr "ERROR: fichier charset %s erroné\n"
 msgid "ERROR: Bad charset type %s\n"
@@ -593,81 +593,81 @@ msgstr "ERROR: variable d’environnement d’imprimante non définie.\n"
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr "ERROR: fichier d’impression non accepté (%s).\n"
 msgid "ERROR: Printer not responding!\n"
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr "ERROR: fichier d’impression non accepté (%s).\n"
 msgid "ERROR: Printer not responding!\n"
-msgstr "ERREUR : L’imprimante ne répond pas."
+msgstr "ERROR: L’imprimante ne répond pas."
 msgid "ERROR: Remote host did not accept control file (%d)\n"
 msgstr "ERROR: l’hôte à distance n’a pas accepté le fichier contrôle (%d)\n"
 msgid "ERROR: Remote host did not accept data file (%d)\n"
 msgstr "ERROR: l’hôte à distance n’a pas accepté le fichier de données (%d)\n"
 msgid "ERROR: Unable to add file %d to job: %s\n"
 msgid "ERROR: Remote host did not accept control file (%d)\n"
 msgstr "ERROR: l’hôte à distance n’a pas accepté le fichier contrôle (%d)\n"
 msgid "ERROR: Remote host did not accept data file (%d)\n"
 msgstr "ERROR: l’hôte à distance n’a pas accepté le fichier de données (%d)\n"
 msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr "ERREUR : impossible d’ajouter le fichier %d à la tâche : %s\n"
+msgstr "ERROR: impossible d’ajouter le fichier %d à la tâche : %s\n"
 msgid "ERROR: Unable to cancel job %d: %s\n"
 msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr "ERREUR: impossible d’annuler la tâche %d : %s\n"
+msgstr "ERROR: impossible d’annuler la tâche %d : %s\n"
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr "ERREUR : impossible de créer un fichier d’impression compressé temporaire : %s\n"
+msgstr "ERROR: impossible de créer un fichier d’impression compressé temporaire : %s\n"
 msgid "ERROR: Unable to create temporary file - %s.\n"
 msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr "ERREUR : impossible de créer un fichier temporaire - %s.\n"
+msgstr "ERROR: impossible de créer un fichier temporaire - %s.\n"
 msgid "ERROR: Unable to create temporary file: %s\n"
 msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr "ERREUR : impossible de créer un fichier temporaire : %s\n"
+msgstr "ERROR: impossible de créer un fichier temporaire : %s\n"
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr "ERREUR : impossible d’exécuter pictwpstops : %s\n"
+msgstr "ERROR: impossible d’exécuter pictwpstops : %s\n"
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr "ERREUR : impossible de faire un « fork » de pictwpstops: %s\n"
+msgstr "ERROR: impossible de faire un « fork » de pictwpstops: %s\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr "ERRERUR : Pas de fichier PPD pour l’imprimante « %s » - %s\n"
+msgstr "ERROR: Pas de fichier PPD pour l’imprimante « %s » - %s\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "ERREUR : impossible d’obtenir les attributs %d de la tâche (%s).\n"
+msgstr "ERROR: impossible d’obtenir les attributs %d de la tâche (%s).\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr "ERREUR : impossible d’obtenir l’état de l’imprimante (%s)."
+msgstr "ERROR: impossible d’obtenir l’état de l’imprimante (%s)."
 msgid "ERROR: Unable to locate printer '%s'!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr "ERREUR : impossible de modifier l’imprimante :"
+msgstr "ERROR: impossible de modifier l’imprimante %s!"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "ERREUR : impossible d’ouvrir ˝%s˝ - %s\n"
+msgstr "ERROR: impossible d’ouvrir ˝%s˝ - %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
-msgstr "ERREUR : impossible d’ouvrir %s : %s\n"
+msgstr "ERROR: impossible d’ouvrir %s : %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "ERREUR: impossible d’ouvrir le fichier d’appareil « %s » : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’appareil « %s » : %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier « %s » - %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier « %s » - %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier « %s » : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier « %s » : %s\n"
 msgid "ERROR: Unable to open image file for printing!\n"
 msgid "ERROR: Unable to open image file for printing!\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier image pour l’imprimer.\n"
+msgstr "ERROR: impossible d’ouvrir le fichier image pour l’imprimer.\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier d’impression « %s » : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’impression « %s » : %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier d’impression %s - %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’impression %s - %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr "ERREUR : impossible d’imprimer le fichier d’impression %s : %s\n"
+msgstr "ERROR: impossible d’imprimer le fichier d’impression %s : %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier d’impression compressé temporaire : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’impression compressé temporaire : %s\n"
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
 msgstr "ERROR: impossible de chercher jusqu’au décalage %ld dans le fichier - %s\n"
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
 msgstr "ERROR: impossible de chercher jusqu’au décalage %lld dans le fichier - %s\n"
 msgid "ERROR: Unable to send print data (%d)\n"
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
 msgstr "ERROR: impossible de chercher jusqu’au décalage %ld dans le fichier - %s\n"
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
 msgstr "ERROR: impossible de chercher jusqu’au décalage %lld dans le fichier - %s\n"
 msgid "ERROR: Unable to send print data (%d)\n"
-msgstr "ERREUR : impossible d’envoyer les données d’impression (%d)\n"
+msgstr "ERROR: impossible d’envoyer les données d’impression (%d)\n"
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr "ERROR: impossible d’attendre les pictwpstop : %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr "ERROR: impossible d’attendre les pictwpstop : %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "ERREUR : impossible d’écrire %d octets à « %s » : %s\n"
+msgstr "ERROR: impossible d’écrire %d octets à « %s » : %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
-msgstr "ERREUR : impossible d’écrire les données d’impression : %s\n"
+msgstr "ERROR: impossible d’écrire les données d’impression : %s\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr "ERREUR : impossible d’écrire les données de la trame sur le disque."
+msgstr "ERROR: impossible d’écrire les données de la trame sur le disque."
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
 msgstr "ERROR: impossible d’écrire des données de document non compressée : %s\n"
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
 msgstr "ERROR: impossible d’écrire des données de document non compressée : %s\n"
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "ERREUR : valeur d’option de chiffrement inconnu « %s ».\n"
+msgstr "ERROR: valeur d’option de chiffrement inconnu « %s ».\n"
 msgid "ERROR: Unknown file order \"%s\"\n"
 msgstr "ERROR: ordre de fichier inconnu \"%s\"\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgid "ERROR: Unknown file order \"%s\"\n"
 msgstr "ERROR: ordre de fichier inconnu \"%s\"\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
-msgstr "ERROR: caractère de format inconnu \"%s\"\n"
+msgstr "ERROR: caractère de format inconnu \"%c\"\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "ERREUR : Option inconnue « %s » avec valeur « %s ».\n"
+msgstr "ERROR: Option inconnue « %s » avec valeur « %s ».\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "ERREUR : mode d’impression inconnu « %s »\n"
+msgstr "ERROR: mode d’impression inconnu « %s »\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "ERREUR : valeur d’option de version inconnue « %s ».\n"
+msgstr "ERROR: valeur d’option de version inconnue « %s ».\n"
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
 msgstr "ERROR: valeur de luminosité non prise en charge %s, valeur affectée à la luminosité=100.\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
 msgstr "ERROR: valeur de luminosité non prise en charge %s, valeur affectée à la luminosité=100.\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
@@ -683,7 +683,7 @@ msgstr "ERROR: dépassement de capacité de doc_printf (%d octets) détecté, pr
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr "ERROR: pictwpstops a quitté au signal %d.\n"
 msgid "ERROR: pictwpstops exited with status %d!\n"
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr "ERROR: pictwpstops a quitté au signal %d.\n"
 msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr "ERREUR : pictwpstops a quitté avec le statut %d."
+msgstr "ERROR: pictwpstops a quitté avec le statut %d."
 msgid "ERROR: recoverable: Unable to connect to printer; will retry in 30 seconds...\n"
 msgstr "ERROR: réparable : impossible de se connecter à l’imprimante ; nouvel essai dans 30 secondes...\n"
 msgid "ERROR: select() returned %d\n"
 msgid "ERROR: recoverable: Unable to connect to printer; will retry in 30 seconds...\n"
 msgstr "ERROR: réparable : impossible de se connecter à l’imprimante ; nouvel essai dans 30 secondes...\n"
 msgid "ERROR: select() returned %d\n"
@@ -1169,7 +1169,7 @@ msgstr "Le format « %s » n’est pas géré."
 msgid "Unsupported format '%s'!"
 msgstr "Format non géré « %s »."
 msgid "Unsupported format '%s/%s'!"
 msgid "Unsupported format '%s'!"
 msgstr "Format non géré « %s »."
 msgid "Unsupported format '%s/%s'!"
-msgstr "Le format « %s » n’est pas géré."
+msgstr "Le format « %s/%s » n’est pas géré."
 msgid "Usage:\n\n    lpadmin [-h server] -d destination\n    lpadmin [-h server] -x destination\n    lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n                       [-r remove-class] [-v device] [-D description]\n                       [-P ppd-file] [-o name=value]\n                       [-u allow:user,user] [-u deny:user,user]\n\n"
 msgstr "Utilisation :\n\n    lpadmin [-h serveur] -d destination\n    lpadmin [-h serveur] -x destination\n    lpadmin [-h serveur] -p imprimante [-c classe] [-i interface] [-m modèle]\n                        [-r classe] [-v URI] [-D description]\n                        [-P fichier-ppd] [-o option=valeur]\n                        [-u allow:util.,util.] [-u deny:util.,util.]\n\n"
 msgid "Usage: %s job-id user title copies options [file]\n"
 msgid "Usage:\n\n    lpadmin [-h server] -d destination\n    lpadmin [-h server] -x destination\n    lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n                       [-r remove-class] [-v device] [-D description]\n                       [-P ppd-file] [-o name=value]\n                       [-u allow:user,user] [-u deny:user,user]\n\n"
 msgstr "Utilisation :\n\n    lpadmin [-h serveur] -d destination\n    lpadmin [-h serveur] -x destination\n    lpadmin [-h serveur] -p imprimante [-c classe] [-i interface] [-m modèle]\n                        [-r classe] [-v URI] [-D description]\n                        [-P fichier-ppd] [-o option=valeur]\n                        [-u allow:util.,util.] [-u deny:util.,util.]\n\n"
 msgid "Usage: %s job-id user title copies options [file]\n"
@@ -1201,7 +1201,7 @@ msgstr "Utilisation : lpq [-P dest] [-U nom_utilisateur] [-h nom_machine[:port]]
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr "Usage: snmp [hôte-ou-adresse-ip]\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr "Usage: snmp [hôte-ou-adresse-ip]\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "AVERTISSEMENT : expression booléenne attendue pour l’option d’attente « %s ».\n"
+msgstr "WARNING: expression booléenne attendue pour l’option d’attente « %s ».\n"
 msgid "WARNING: Couldn't create read channel\n"
 msgstr "WARNING: impossible de créer ou lire un canal\n"
 msgid "WARNING: Couldn't create side channel\n"
 msgid "WARNING: Couldn't create read channel\n"
 msgstr "WARNING: impossible de créer ou lire un canal\n"
 msgid "WARNING: Couldn't create side channel\n"
@@ -1221,11 +1221,11 @@ msgstr "WARNING: la commande SCSI a expiré (%d); nouvel essai...\n"
 msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
 msgstr "WARNING: ce document n’est pas conforme aux normes Adobe (Adobe Document Structuring Conventions) et pourrait être mal imprimé.\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
 msgstr "WARNING: ce document n’est pas conforme aux normes Adobe (Adobe Document Structuring Conventions) et pourrait être mal imprimé.\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "AVERTISSEMENT : choix inconu « %s » pour l’option « %s ».\n"
+msgstr "WARNING: choix inconu « %s » pour l’option « %s ».\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "AVERTISSEMENT : option « %s » inconnue.\n"
+msgstr "WARNING: option « %s » inconnue.\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "AVERTISSEMENT : %s fréquence de baud non prise en charge."
+msgstr "WARNING: %s fréquence de baud non prise en charge."
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
 msgstr "WARNING: réparable : l’hôte du réseau '%s' est occupé ; nouvel essai dans %d secondes...\n"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
 msgstr "WARNING: réparable : l’hôte du réseau '%s' est occupé ; nouvel essai dans %d secondes...\n"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
@@ -1379,7 +1379,7 @@ msgstr "lpoptions: Pas d’imprimante.?!\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: impossible d’ajouter l’imprimante ou l’instance : %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: impossible d’ajouter l’imprimante ou l’instance : %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: impossible d’ouvrir le fichier PPD pour %s.\n"
+msgstr "lpoptions: impossible d’ouvrir le fichier PPD pour %s: %s\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: impossible d’ouvrir le fichier PPD pour %s.\n"
 msgid "lpoptions: Unknown printer or class!\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: impossible d’ouvrir le fichier PPD pour %s.\n"
 msgid "lpoptions: Unknown printer or class!\n"
@@ -1411,7 +1411,7 @@ msgstr "lppasswd: l’utilisateur « %s » et/ou le groupe « %s » n’existe(n
 msgid "lprm: Unable to contact server!\n"
 msgstr "lprm: impossible de contacter le serveur.\n"
 msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgid "lprm: Unable to contact server!\n"
 msgstr "lprm: impossible de contacter le serveur.\n"
 msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lpstat: erreur - la variable d’environnement désigne une destination\n                 inexistente « %s ».\n"
+msgstr "lpstat: erreur - la variable %s d’environnement désigne une destination %s.\n"
 msgid "members of class %s:\n"
 msgstr "membres de la classe %s :\n"
 msgid "no entries\n"
 msgid "members of class %s:\n"
 msgstr "membres de la classe %s :\n"
 msgid "no entries\n"
index cf79c1108eab9b775c7e62c63d005fcceeb36007..a32689b5bd332156ed93d5bbffe1593b7c8ec583 100644 (file)
@@ -334,50 +334,40 @@ msgstr ""
 "       אזהרה    ShortNickName נדרש בספציפיקציה של PPD 4.3.\n"
 "                ראה: עמודים 64-65, סעיף 5.3.\n"
 
 "       אזהרה    ShortNickName נדרש בספציפיקציה של PPD 4.3.\n"
 "                ראה: עמודים 64-65, סעיף 5.3.\n"
 
-#, fuzzy, c-format
 msgid "      %s  %s %s does not exist!\n"
 msgid "      %s  %s %s does not exist!\n"
-msgstr "      **נכשל** %s %s לא קיים!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr "      ‫**נכשל**  חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid ""
 "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
 msgid ""
 "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
-msgstr "      ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
-msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
 msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
-msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      %s  Bad language \"%s\"!\n"
 msgid "      %s  Bad language \"%s\"!\n"
-msgstr "      ‫**נכשל**  שפה שגויה \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      %s  Missing \"%s\" translation string for option %s!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s!\n"
-msgstr "      ‫**נכשל**  חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      %s  Missing \"%s\" translation string for option %s, choice %s!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr "      ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
+msgstr ""
 
 #, c-format
 msgid "      %s  Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgstr ""
 
 
 #, c-format
 msgid "      %s  Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "      %s  Missing cupsFilter file \"%s\"\n"
 msgid "      %s  Missing cupsFilter file \"%s\"\n"
-msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
-msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
 
 #, c-format
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
 
 #, c-format
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
@@ -387,13 +377,10 @@ msgstr ""
 msgid "      %s  No base translation \"%s\" is included in file!\n"
 msgstr ""
 
 msgid "      %s  No base translation \"%s\" is included in file!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid ""
 "      **FAIL**  %s must be 1284DeviceID!\n"
 "                REF: Page 72, section 5.5\n"
 msgstr ""
 msgid ""
 "      **FAIL**  %s must be 1284DeviceID!\n"
 "                REF: Page 72, section 5.5\n"
 msgstr ""
-"      **נכשל**  1284DeviceId חייב להיות 1284DeviceID!\n"
-"                ראה: עמוד 72, סעיף 5.5\n"
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -433,13 +420,10 @@ msgstr ""
 "      **נכשל**  שגוי Manufacturer (צריך להיות \"HP\")\n"
 "                ראה: עמוד 211, טבלה D.1.\n"
 
 "      **נכשל**  שגוי Manufacturer (צריך להיות \"HP\")\n"
 "                ראה: עמוד 211, טבלה D.1.\n"
 
-#, fuzzy
 msgid ""
 "      **FAIL**  BAD Manufacturer (should be \"Oki\")\n"
 "                REF: Page 211, table D.1.\n"
 msgstr ""
 msgid ""
 "      **FAIL**  BAD Manufacturer (should be \"Oki\")\n"
 "                REF: Page 211, table D.1.\n"
 msgstr ""
-"      **נכשל**  שגוי Manufacturer (צריך להיות \"HP\")\n"
-"                ראה: עמוד 211, טבלה D.1.\n"
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -486,18 +470,14 @@ msgstr ""
 "      **נכשל**  שגוי %s בחירה %s!\n"
 "                ראה: עמוד 84, סעיף 5.9\n"
 
 "      **נכשל**  שגוי %s בחירה %s!\n"
 "                ראה: עמוד 84, סעיף 5.9\n"
 
-#, fuzzy, c-format
 msgid "      **FAIL**  Bad LanguageEncoding %s - must be ISOLatin1!\n"
 msgid "      **FAIL**  Bad LanguageEncoding %s - must be ISOLatin1!\n"
-msgstr "      ‫**נכשל**  שפה שגויה \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
-msgstr "      ‫**נכשל**  שפה שגויה \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgstr ""
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgstr ""
-"      ‫**נכשל** מחרוזת תרגום ברירת מחדל לאופציה %s מכילה תווים של 8 סיביות!\n"
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -664,9 +644,8 @@ msgstr ""
 "      **נכשל**  נדרש ShortNickName\n"
 "                ראה: עמודים 64-65, סעיף 5.3.\n"
 
 "      **נכשל**  נדרש ShortNickName\n"
 "                ראה: עמודים 64-65, סעיף 5.3.\n"
 
-#, fuzzy, c-format
 msgid "    %d ERRORS FOUND\n"
 msgid "    %d ERRORS FOUND\n"
-msgstr "    נמצאו %d שגיאה%s\n"
+msgstr ""
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -1066,9 +1045,8 @@ msgstr "%s: יעד לא ידוע \"%s\"!\n"
 msgid "%s: Unknown destination MIME type %s/%s!\n"
 msgstr ""
 
 msgid "%s: Unknown destination MIME type %s/%s!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "%s: Unknown option '%c'!\n"
 msgid "%s: Unknown option '%c'!\n"
-msgstr "lp: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
 #, c-format
 msgid "%s: Unknown source MIME type %s/%s!\n"
 
 #, c-format
 msgid "%s: Unknown source MIME type %s/%s!\n"
@@ -1186,21 +1164,17 @@ msgstr "ערך job-state שגוי!"
 msgid "Bad job-uri attribute \"%s\"!"
 msgstr "ערך \"%s\" למאפיין job-uri שגוי!"
 
 msgid "Bad job-uri attribute \"%s\"!"
 msgstr "ערך \"%s\" למאפיין job-uri שגוי!"
 
-#, fuzzy, c-format
 msgid "Bad notify-pull-method \"%s\"!"
 msgid "Bad notify-pull-method \"%s\"!"
-msgstr "port-monitor \"%s\" שגוי!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "Bad notify-recipient-uri URI \"%s\"!"
 msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr "device-uri \"%s\" שגוי!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "Bad number-up value %d."
 msgid "Bad number-up value %d."
-msgstr "ערך העותקים %d שגוי."
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "Bad option + choice on line %d!"
 msgid "Bad option + choice on line %d!"
-msgstr "אופציה + אפשרות שגויים בשורה %d!\n"
+msgstr ""
 
 #, c-format
 msgid "Bad page-ranges values %d-%d."
 
 #, c-format
 msgid "Bad page-ranges values %d-%d."
@@ -1218,9 +1192,8 @@ msgstr "ערך %d עבור printer-state שגוי!"
 msgid "Bad request version number %d.%d!"
 msgstr "בקשה שגויה מספר גרסה %d.%d!"
 
 msgid "Bad request version number %d.%d!"
 msgstr "בקשה שגויה מספר גרסה %d.%d!"
 
-#, fuzzy
 msgid "Bad subscription ID!"
 msgid "Bad subscription ID!"
-msgstr "לא נמצאו מינויים."
+msgstr ""
 
 msgid "Banners"
 msgstr "כרזות"
 
 msgid "Banners"
 msgstr "כרזות"
@@ -1289,13 +1262,11 @@ msgstr ""
 msgid "Door open."
 msgstr ""
 
 msgid "Door open."
 msgstr ""
 
-#, fuzzy, c-format
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: %ld: (canceled:%ld)\n"
 
 #, c-format
 msgid "ERROR: %ld: (canceled:%ld)\n"
@@ -1317,9 +1288,8 @@ msgstr ""
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr ""
 
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "device-uri \"%s\" שגוי!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Bad charset file %s\n"
 
 #, c-format
 msgid "ERROR: Bad charset file %s\n"
@@ -1400,9 +1370,8 @@ msgstr ""
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr ""
 
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr ""
 
-#, fuzzy
 msgid "ERROR: Printer not responding!\n"
 msgid "ERROR: Printer not responding!\n"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Remote host did not accept control file (%d)\n"
 
 #, c-format
 msgid "ERROR: Remote host did not accept control file (%d)\n"
@@ -1412,89 +1381,68 @@ msgstr ""
 msgid "ERROR: Remote host did not accept data file (%d)\n"
 msgstr ""
 
 msgid "ERROR: Remote host did not accept data file (%d)\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to add file %d to job: %s\n"
 msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to cancel job %d: %s\n"
 msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr "lprm: לא יכול לבטל עבוד/ות!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to create temporary file - %s.\n"
 msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to create temporary file: %s\n"
 msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr "%s: לא מצליח להתחבר לשרת: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr "לא מצליח לפצל תהליך!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr "cupsaddsmb: לא קיים קובץ PPD למדפסת \"%s\" - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "לא מצליח לקבל מאפייני מדפסת!"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr "לא מצליח לקבל סטטוס מדפסת:"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to locate printer '%s'!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr "לא מצליח למחוק מדפסת:"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open \"%s\" - %s\n"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "lp: לא מצליח לגשת ל- \"%s\" - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open %s: %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open file \"%s\": %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy
 msgid "ERROR: Unable to open image file for printing!\n"
 msgid "ERROR: Unable to open image file for printing!\n"
-msgstr "lpoptions: ‫לא מצליח לפתוח קובץ PPD עבור %s!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open print file %s - %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ PPD \"%s\" - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open print file %s: %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr "lp: לא מצליח להדפיס קובץ: %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני: %s\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
 
 #, c-format
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
@@ -1504,33 +1452,28 @@ msgstr ""
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
 msgstr ""
 
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to send print data (%d)\n"
 msgid "ERROR: Unable to send print data (%d)\n"
-msgstr "לא מצליח לקבוע מנהל התקן הדפסה של Windows (%d)!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr ""
 
 
 #, c-format
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "lp: לא מצליח לגשת ל- \"%s\" - %s\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to write print data: %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
-msgstr "lp: לא מצליח להדפיס קובץ: %s\n"
+msgstr ""
 
 
-#, fuzzy
 msgid "ERROR: Unable to write raster data to driver!\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr "לא מצליח לקבל מאפייני מדפסת!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
 msgstr ""
 
 
 #, c-format
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unknown file order \"%s\"\n"
 
 #, c-format
 msgid "ERROR: Unknown file order \"%s\"\n"
@@ -1540,17 +1483,14 @@ msgstr ""
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr ""
 
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "cupsd: אופציה לא ידועה \"%c\" - נוטש!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown print mode \"%s\"\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown version option value \"%s\"!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
 
 #, c-format
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
@@ -1581,9 +1521,8 @@ msgstr ""
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr ""
 
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: pictwpstops exited with status %d!\n"
 msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr "cupsaddsmb נכשל עם סטטוס %d"
+msgstr ""
 
 msgid ""
 "ERROR: recoverable: Unable to connect to printer; will retry in 30 "
 
 msgid ""
 "ERROR: recoverable: Unable to connect to printer; will retry in 30 "
@@ -1597,9 +1536,8 @@ msgstr ""
 msgid "Edit Configuration File"
 msgstr "ערוך קובץ הגדרות"
 
 msgid "Edit Configuration File"
 msgstr "ערוך קובץ הגדרות"
 
-#, fuzzy
 msgid "Empty PPD file!"
 msgid "Empty PPD file!"
-msgstr "לא ניתן להעתיק קובץ PPD!"
+msgstr ""
 
 msgid "Ending Banner"
 msgstr "כרזת סיום"
 
 msgid "Ending Banner"
 msgstr "כרזת סיום"
@@ -1613,12 +1551,11 @@ msgstr "הכנס סיסמא שוב:"
 msgid "Enter password:"
 msgstr "הכנס סיסמא:"
 
 msgid "Enter password:"
 msgstr "הכנס סיסמא:"
 
-#, fuzzy
 msgid ""
 "Enter your username and password or the root username and password to access "
 "this page. If you are using Kerberos authentication, make sure you have a "
 "valid Kerberos ticket."
 msgid ""
 "Enter your username and password or the root username and password to access "
 "this page. If you are using Kerberos authentication, make sure you have a "
 "valid Kerberos ticket."
-msgstr "הקלד שם משתמש וסיסמה או שם משתמש \"root\" וסיסמה כדי לגשת לדף זה."
+msgstr ""
 
 msgid "Error Policy"
 msgstr "מדיניות שגיאה"
 
 msgid "Error Policy"
 msgstr "מדיניות שגיאה"
@@ -1663,9 +1600,8 @@ msgstr "עזרה"
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
 msgstr ""
 
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "INFO: Attempting to connect to host %s on port %d\n"
 msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "lpstat: לא מצליח להתחבר לשרת %s בפתחה %d: %s\n"
+msgstr ""
 
 msgid "INFO: Canceling print job...\n"
 msgstr ""
 
 msgid "INFO: Canceling print job...\n"
 msgstr ""
@@ -1818,9 +1754,8 @@ msgstr "עבודה #%d לא קיימת!"
 msgid "Job #%d is already aborted - can't cancel."
 msgstr "עבודה #%d ננטשה כבר - לא יכול לבטל"
 
 msgid "Job #%d is already aborted - can't cancel."
 msgstr "עבודה #%d ננטשה כבר - לא יכול לבטל"
 
-#, fuzzy, c-format
 msgid "Job #%d is already canceled - can't cancel."
 msgid "Job #%d is already canceled - can't cancel."
-msgstr "עבודה #%d בוטלה כבר - לא יכול לבטל."
+msgstr ""
 
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
 
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
@@ -1850,20 +1785,17 @@ msgstr "עבודה #%s לא קיימת!"
 msgid "Job %d not found!"
 msgstr "עבודה %d לא נמצאה!"
 
 msgid "Job %d not found!"
 msgstr "עבודה %d לא נמצאה!"
 
-#, fuzzy
 msgid "Job Completed"
 msgid "Job Completed"
-msgstr "הסתיים"
+msgstr ""
 
 msgid "Job Created"
 msgstr ""
 
 
 msgid "Job Created"
 msgstr ""
 
-#, fuzzy
 msgid "Job Options Changed"
 msgid "Job Options Changed"
-msgstr "פעולת עבודה נכשלה:"
+msgstr ""
 
 
-#, fuzzy
 msgid "Job Stopped"
 msgid "Job Stopped"
-msgstr "עצורה"
+msgstr ""
 
 msgid "Job is completed and cannot be changed."
 msgstr "עבודה הסתיימה ולא ניתנת לשינוי."
 
 msgid "Job is completed and cannot be changed."
 msgstr "עבודה הסתיימה ולא ניתנת לשינוי."
@@ -1899,9 +1831,8 @@ msgstr "מקור דף"
 msgid "Media Type"
 msgstr "סוג דף"
 
 msgid "Media Type"
 msgstr "סוג דף"
 
-#, fuzzy
 msgid "Media jam!"
 msgid "Media jam!"
-msgstr "גודל דף"
+msgstr ""
 
 msgid "Media tray almost empty."
 msgstr ""
 
 msgid "Media tray almost empty."
 msgstr ""
@@ -1924,9 +1855,8 @@ msgstr "‫חסרה כותרת PPD-Adobe-4.x"
 msgid "Missing asterisk in column 1"
 msgstr "חסרה כוכבית בטור 1"
 
 msgid "Missing asterisk in column 1"
 msgstr "חסרה כוכבית בטור 1"
 
-#, fuzzy, c-format
 msgid "Missing double quote on line %d!"
 msgid "Missing double quote on line %d!"
-msgstr "חסרים גרשיים בשורה %d!\n"
+msgstr ""
 
 msgid "Missing form variable!"
 msgstr "חסר משתנה טופס!"
 
 msgid "Missing form variable!"
 msgstr "חסר משתנה טופס!"
@@ -1940,9 +1870,8 @@ msgstr "המאפיין requesting-user-name חסר!"
 msgid "Missing required attributes!"
 msgstr "חסרים מאפיינים נדרשים!"
 
 msgid "Missing required attributes!"
 msgstr "חסרים מאפיינים נדרשים!"
 
-#, fuzzy, c-format
 msgid "Missing value on line %d!"
 msgid "Missing value on line %d!"
-msgstr "חסר ערך בשורה %d!\n"
+msgstr ""
 
 msgid "Missing value string"
 msgstr "חסר מחרוזת ערך"
 
 msgid "Missing value string"
 msgstr "חסר מחרוזת ערך"
@@ -2015,9 +1944,8 @@ msgstr "לא נמצאו מינויים."
 msgid "None"
 msgstr "כלום"
 
 msgid "None"
 msgstr "כלום"
 
-#, fuzzy
 msgid "Not allowed to print."
 msgid "Not allowed to print."
-msgstr "אין מדפסת ברירת מחדל"
+msgstr ""
 
 msgid "OK"
 msgstr "אישור"
 
 msgid "OK"
 msgstr "אישור"
@@ -2094,28 +2022,23 @@ msgstr "עבודת הדפסה:"
 msgid "Print Test Page"
 msgstr "הדפס עמוד ניסיון"
 
 msgid "Print Test Page"
 msgstr "הדפס עמוד ניסיון"
 
-#, fuzzy
 msgid "Printer Added"
 msgid "Printer Added"
-msgstr "מדפסת"
+msgstr ""
 
 
-#, fuzzy
 msgid "Printer Deleted"
 msgid "Printer Deleted"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
 msgid "Printer Maintenance"
 msgstr "אחזקת מדפסת"
 
 
 msgid "Printer Maintenance"
 msgstr "אחזקת מדפסת"
 
-#, fuzzy
 msgid "Printer Modified"
 msgid "Printer Modified"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
 
-#, fuzzy
 msgid "Printer Stopped"
 msgid "Printer Stopped"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
 
-#, fuzzy
 msgid "Printer off-line."
 msgid "Printer off-line."
-msgstr "אחזקת מדפסת"
+msgstr ""
 
 msgid "Printer:"
 msgstr "מדפסת:"
 
 msgid "Printer:"
 msgstr "מדפסת:"
@@ -2165,9 +2088,8 @@ msgstr "קבע משתמשים מורשים"
 msgid "Set As Default"
 msgstr "קבע כברירת-מחדל"
 
 msgid "Set As Default"
 msgstr "קבע כברירת-מחדל"
 
-#, fuzzy
 msgid "Set Class Options"
 msgid "Set Class Options"
-msgstr "קבע אופציות מדפסת"
+msgstr ""
 
 msgid "Set Printer Options"
 msgstr "קבע אופציות מדפסת"
 
 msgid "Set Printer Options"
 msgstr "קבע אופציות מדפסת"
@@ -2242,13 +2164,10 @@ msgid ""
 msgstr ""
 "ה printer-uri חייב להיות מהצורה \"ipp://HOSTNAME/printers/PRINTERNAME\"."
 
 msgstr ""
 "ה printer-uri חייב להיות מהצורה \"ipp://HOSTNAME/printers/PRINTERNAME\"."
 
-#, fuzzy
 msgid ""
 "The subscription name may not contain spaces, slashes (/), question marks "
 "(?), or the pound sign (#)."
 msgstr ""
 msgid ""
 "The subscription name may not contain spaces, slashes (/), question marks "
 "(?), or the pound sign (#)."
 msgstr ""
-"‫שם המחלקה יכול להכיל עד 127 תווים דפיסים, למעט רווחים, לוכסנים (/) וסולמית "
-"(#)."
 
 msgid "Toner low."
 msgstr ""
 
 msgid "Toner low."
 msgstr ""
@@ -2259,9 +2178,8 @@ msgstr "יותר מדי עבודות פעילות."
 msgid "Unable to access cupsd.conf file:"
 msgstr "‫לא מצליח לגשת לקובץ cupsd.conf:"
 
 msgid "Unable to access cupsd.conf file:"
 msgstr "‫לא מצליח לגשת לקובץ cupsd.conf:"
 
-#, fuzzy
 msgid "Unable to add RSS subscription:"
 msgid "Unable to add RSS subscription:"
-msgstr "לא מצליח להוסיף מדפסת:"
+msgstr ""
 
 msgid "Unable to add class:"
 msgstr "לא מצליח להוסיף מחלקה:"
 
 msgid "Unable to add class:"
 msgstr "לא מצליח להוסיף מחלקה:"
@@ -2276,9 +2194,8 @@ msgstr "לא מצליח להוסיף מדפסת:"
 msgid "Unable to allocate memory for file types!"
 msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
 
 msgid "Unable to allocate memory for file types!"
 msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
 
-#, fuzzy
 msgid "Unable to cancel RSS subscription:"
 msgid "Unable to cancel RSS subscription:"
-msgstr "לא מצליח לשנות מדפסת:"
+msgstr ""
 
 msgid "Unable to change printer-is-shared attribute:"
 msgstr "‫לא מצליח לשנות מאפיין printer-is-shared:"
 
 msgid "Unable to change printer-is-shared attribute:"
 msgstr "‫לא מצליח לשנות מאפיין printer-is-shared:"
@@ -2385,16 +2302,14 @@ msgstr "‫לא מצליח לפתוח קובץ cupsd.conf:"
 msgid "Unable to print test page:"
 msgstr "לא מצליח להדפיס עמוד ניסיון:"
 
 msgid "Unable to print test page:"
 msgstr "לא מצליח להדפיס עמוד ניסיון:"
 
-#, fuzzy, c-format
 msgid "Unable to run \"%s\": %s\n"
 msgid "Unable to run \"%s\": %s\n"
-msgstr "cupsaddsmb: לא מצליח להריץ \"%s\": %s\n"
+msgstr ""
 
 msgid "Unable to send maintenance job:"
 msgstr "לא מצליח לשלוח עבודת תחזוקה:"
 
 
 msgid "Unable to send maintenance job:"
 msgstr "לא מצליח לשלוח עבודת תחזוקה:"
 
-#, fuzzy, c-format
 msgid "Unable to set Windows printer driver (%d)!"
 msgid "Unable to set Windows printer driver (%d)!"
-msgstr "לא מצליח לקבוע מנהל התקן הדפסה של Windows (%d)!\n"
+msgstr ""
 
 msgid "Unable to set options:"
 msgstr "לא מצליח לקבוע אופציות:"
 
 msgid "Unable to set options:"
 msgstr "לא מצליח לקבוע אופציות:"
@@ -2405,9 +2320,8 @@ msgstr "‫לא מצליח להעלות קובץ cupsd.conf:"
 msgid "Unknown"
 msgstr "לא ידוע"
 
 msgid "Unknown"
 msgstr "לא ידוע"
 
-#, fuzzy, c-format
 msgid "Unknown printer error (%s)!"
 msgid "Unknown printer error (%s)!"
-msgstr "printer-error-policy \"%s\" לא ידוע."
+msgstr ""
 
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
 
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
@@ -2623,9 +2537,8 @@ msgstr ""
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr ""
 
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "lp: מצפה לטופס אחרי האופציה -f!\n"
+msgstr ""
 
 msgid "WARNING: Couldn't create read channel\n"
 msgstr ""
 
 msgid "WARNING: Couldn't create read channel\n"
 msgstr ""
@@ -2667,17 +2580,14 @@ msgid ""
 "Conventions and may not print correctly!\n"
 msgstr ""
 
 "Conventions and may not print correctly!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "WARNING: Unknown option \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "%s: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "מבנה \"%s\" לא נתמך!"
+msgstr ""
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -2721,13 +2631,11 @@ msgstr "נכשלה הפעלת cups-driverd."
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: לא קיים קובץ PPD למדפסת \"%s\" - %s\n"
 
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: לא קיים קובץ PPD למדפסת \"%s\" - %s\n"
 
-#, fuzzy, c-format
 msgid "cupsctl: Unknown option \"%s\"!\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cancel: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
 
-#, fuzzy, c-format
 msgid "cupsctl: Unknown option \"-%c\"!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr "cancel: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgstr "cupsd: מצפה לשם קובץ תצורה לאחר האופציה \"-c\"!\n"
 
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgstr "cupsd: מצפה לשם קובץ תצורה לאחר האופציה \"-c\"!\n"
@@ -2966,9 +2874,8 @@ msgstr "lpoptions: אין מדפסות!?!\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: לא מצליח להוסיף מדפסת או מופע-מדפסת: %s\n"
 
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: לא מצליח להוסיף מדפסת או מופע-מדפסת: %s\n"
 
-#, fuzzy, c-format
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: ‫לא מצליח לפתוח קובץ PPD עבור %s!\n"
+msgstr ""
 
 #, c-format
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 
 #, c-format
 msgid "lpoptions: Unable to open PPD file for %s!\n"
@@ -3122,538 +3029,3 @@ msgstr "לא ידוע"
 
 msgid "untitled"
 msgstr "ללא שם"
 
 msgid "untitled"
 msgstr "ללא שם"
-
-#~ msgid "      **FAIL**  %s %s does not exist!\n"
-#~ msgstr "      **נכשל** %s %s לא קיים!\n"
-
-#, fuzzy
-#~ msgid "      **FAIL**  Bad UTF-8 \"%s\" translation string for option %s!\n"
-#~ msgstr "      ‫**נכשל**  חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "      **FAIL**  Bad UTF-8 \"%s\" translation string for option %s, choice "
-#~ "%s!\n"
-#~ msgstr "      ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
-
-#~ msgid "      **FAIL**  Bad cupsFilter value \"%s\"!\n"
-#~ msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
-
-#~ msgid "      **FAIL**  Bad language \"%s\"!\n"
-#~ msgstr "      ‫**נכשל**  שפה שגויה \"%s\"!\n"
-
-#~ msgid "      **FAIL**  Missing \"%s\" translation string for option %s!\n"
-#~ msgstr "      ‫**נכשל**  חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
-
-#~ msgid ""
-#~ "      **FAIL**  Missing \"%s\" translation string for option %s, choice %"
-#~ "s!\n"
-#~ msgstr "      ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
-
-#~ msgid "%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s מקבלת בקשות מאז 01 ינואר 00:00\n"
-
-#~ msgid ""
-#~ "%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s לא מקבלת בקשות מאז 01 ינואר 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s/%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s/%s מקבלת בקשות מאז 01 ינואר 00:00\n"
-
-#~ msgid ""
-#~ "%s/%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s/%s לא מקבלת בקשות מאז 01 ינואר 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s: Expected reason text after -r!\n"
-#~ msgstr "%s: מצפה לטקסט סיבה אחרי -r!\n"
-
-#~ msgid "%s: Expected server name after -h!\n"
-#~ msgstr "%s: מצפה לשם שרת אחרי -h!\n"
-
-#~ msgid "Auto"
-#~ msgstr "אוטומטי"
-
-#~ msgid "Class"
-#~ msgstr "מחלקה"
-
-#~ msgid ""
-#~ "Device: uri = %s\n"
-#~ "        class = %s\n"
-#~ "        info = %s\n"
-#~ "        make-and-model = %s\n"
-#~ msgstr ""
-#~ "התקן:   uri ‏= %s\n"
-#~ "        מחלקה = %s\n"
-#~ "        מידע = %s\n"
-#~ "        יצרן ודגם = %s\n"
-
-#, fuzzy
-#~ msgid "ERROR: %ld: Unable to send print file to printer (canceled:%ld)\n"
-#~ msgstr "lpoptions: לא מצליח להוסיף מדפסת או מופע-מדפסת: %s\n"
-
-#~ msgid "Extra"
-#~ msgstr "נוסף"
-
-#~ msgid "Job #%d doesn't exist!"
-#~ msgstr "עבודה #%d לא קיימת!"
-
-#~ msgid "Job #%d is already %s - can't cancel."
-#~ msgstr "עבודה #%d כבר %s לא ניתן לבטל."
-
-#~ msgid ""
-#~ "Model:  name = %s\n"
-#~ "        natural_language = %s\n"
-#~ "        make-and-model = %s\n"
-#~ msgstr ""
-#~ "דגם:    שם = %s\n"
-#~ "        שפה טבעית = %s\n"
-#~ "        יצרן ודגם = %s\n"
-
-#~ msgid "No Windows printer drivers are installed!\n"
-#~ msgstr "לא מותקנים מנהלי התקני מדפסת של Windows!\n"
-
-#~ msgid "No printer drivers found!"
-#~ msgstr "לא נמצאו מנהלי התקני מדפסת!"
-
-#~ msgid "Not authorized to hold job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה להשהות עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
-#~ msgstr "מריץ פקודה: %s %s -N -U '%s%%%s' -c '%s'\n"
-
-#~ msgid "The printer-uri \"%s\" is not valid."
-#~ msgstr "ה printer-uri \"%s\" לא תקף."
-
-#~ msgid "Too many jobs - %d jobs, max jobs is %d."
-#~ msgstr "יותר מדי עבודות - %d עבודות, המקסימום הוא %d."
-
-#~ msgid "Unable to connect to server!"
-#~ msgstr "לא מצליח להתחבר לשרת!"
-
-#~ msgid "Unable to convert PPD file!"
-#~ msgstr "‫לא מצליח להמיר קובץ PPD!"
-
-#~ msgid "Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להעתיק קבצי מנהל התקן הדפסה של CUPS (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 2000 (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files!"
-#~ msgstr "‫לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 2000!"
-
-#~ msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 9x (%d)!\n"
-
-#~ msgid "Unable to copy Windows 9x printer driver files!"
-#~ msgstr "‫לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 9x!"
-
-#~ msgid "Unable to execute cupsaddsmb command!"
-#~ msgstr "‫לא מצליח לבצע פקודת cupsaddsmb!"
-
-#~ msgid "Unable to get PPD file!"
-#~ msgstr "‫לא מצליח לקבל קובץ PPD!"
-
-#~ msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 2000 (%d)!\n"
-
-#~ msgid "Unable to install Windows 2000 printer driver files!"
-#~ msgstr "‫לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 2000!"
-
-#~ msgid "Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 9x (%d)!\n"
-
-#~ msgid "Unable to install Windows 9x printer driver files!"
-#~ msgstr "‫לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 9x!"
-
-#~ msgid "Unable to set Windows printer driver!"
-#~ msgstr "‫לא מצליח לקבוע מנהל התקן הדפסה של Windows!"
-
-#~ msgid ""
-#~ "Usage: cupsaddsmb [options] printer1 ... printerN\n"
-#~ "       cupsaddsmb [options] -a\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "  -H samba-server  Use the named SAMBA server\n"
-#~ "  -U samba-user    Authenticate using the named SAMBA user\n"
-#~ "  -a               Export all printers\n"
-#~ "  -h cups-server   Use the named CUPS server\n"
-#~ "  -v               Be verbose (show commands)\n"
-#~ msgstr ""
-#~ "Usage: cupsaddsmb [options] printer1 ... printerN\n"
-#~ "       cupsaddsmb [options] -a\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "  -H samba-server  השתמש בשרת  SAMBA המצויין\n"
-#~ "  -U samba-user    הזדהה בעזרת שם משתמש SAMBA המצויין\n"
-#~ "  -a               ייצא את כל המדפסות\n"
-#~ "  -h cups-server   השתמש בשרת CUPS המצויין\n"
-#~ "  -v               פלט מפורט (הצג פקודות)\n"
-
-#~ msgid ""
-#~ "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd"
-#~ "[.gz]]\n"
-#~ "       program | cupstestppd [-q] [-r] [-v[v]] -\n"
-#~ msgstr ""
-#~ "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd"
-#~ "[.gz]]\n"
-#~ "       program | cupstestppd [-q] [-r] [-v[v]] -\n"
-
-#~ msgid "Usage: lpmove job dest\n"
-#~ msgstr "Usage: lpmove job dest\n"
-
-#~ msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
-#~ msgstr "Usage: lpq [-P dest] [-l] [+interval]\n"
-
-#~ msgid "Variable"
-#~ msgstr "משתנה"
-
-#~ msgid "Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr "אזהרה, לא מותקנים מנהלי התקני מדפסת של Windows 2000!\n"
-
-#~ msgid "You are not authorized to alter job id %d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשנות עבודה מספר %d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לאמת עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to delete job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה למחוק עבודה  #%d בבעלות  \"%s\"!"
-
-#~ msgid "You are not authorized to move job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה להעביר עבודה #%d בבעלות  \"%s\"!"
-
-#~ msgid "You are not authorized to release job id %d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשחרר עבודה מספר %d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to restart job id %d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשחזר עבודה מספר %d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשלוח מסמך עבור עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "You must use a https: URL to access this page."
-#~ msgstr "יש להשתמש ב https: URL כדי לגשת לדף זה."
-
-#~ msgid "add_class: Unknown printer-error-policy \"%s\"."
-#~ msgstr "add_class: printer-error-policy \"%s\" לא ידוע."
-
-#~ msgid "add_class: Unknown printer-op-policy \"%s\"."
-#~ msgstr "add_class: printer-op-policy \"%s\" לא ידוע."
-
-#~ msgid "cancel: %s failed: %s\n"
-#~ msgstr "cancel: %s נכשל: %s\n"
-
-#~ msgid "cancel: Error - expected hostname after '-h' option!\n"
-#~ msgstr "cancel: שגיאה - מצפה לשם שרת אחרי אופציה '-h'!\n"
-
-#~ msgid "cancel: Error - expected username after '-u' option!\n"
-#~ msgstr "cancel: שגיאה - מצפה לשם משתמש אחרי אופציה '-u'!\n"
-
-#~ msgid "cancel: Unable to contact server!\n"
-#~ msgstr "cancel: לא מצליח לתקשר עם השרת!\n"
-
-#~ msgid "cancel: Unknown destination \"%s\"!\n"
-#~ msgstr "cancel: יעד לא ידוע \"%s\"!\n"
-
-#~ msgid "cupsaddsmb crashed on signal %d"
-#~ msgstr "cupsaddsmb התרסק עם איתות %d"
-
-#~ msgid "cupsaddsmb: Bad option + choice on line %d!\n"
-#~ msgstr "cupsaddsmb: אופציה + בחירה שגויים בשורה %d!\n"
-
-#~ msgid "cupsaddsmb: Missing double quote on line %d!\n"
-#~ msgstr "cupsaddsmb: חסר גרשיים בשורה %d!\n"
-
-#~ msgid "cupsaddsmb: Missing value on line %d!\n"
-#~ msgstr "cupsaddsmb: חסר ערך בשורה %d!\n"
-
-#~ msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
-#~ msgstr "cupsaddsmb: אין קובץ PPD למדפסת \"%s\" - מדלג!\n"
-
-#~ msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
-#~ msgstr "cupsaddsmb: לא מותקנים מנהלי התקני מדפסת של Windows!\n"
-
-#~ msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
-#~ msgstr "cupsaddsmb: לא מצליח להתחבר לשרת \"%s\" עבור %s - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
-#~ msgstr "cupsaddsmb: לא מצליח להמיר קובץ PPD עבור %s - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr "cupsaddsmb: לא מצליח להעתיק קבצי מנהל התקן מדפסת של CUPS (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להעתיק קבצי מנהל התקן מדפסת של Windows 2000 (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להעתיק קבצי מנהל התקן מדפסת של Windows 9x (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להתקין קבצי מנהל התקן מדפסת של  Windows 2000 (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להתקין קבצי מנהל התקן מדפסת של Windows 9x (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
-#~ msgstr "cupsaddsmb: לא מצליח לקבע מנהל התקן מדפסת של Windows (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr "cupsaddsmb: אזהרה, לא מותקנים מנהלי התקני מדפסת של Windows 2000!\n"
-
-#~ msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
-#~ msgstr "cupsaddsmb: get-printer-attributes נכשל עבור \"%s\": %s\n"
-
-#, fuzzy
-#~ msgid "cupsfilter: Unknown destination MIME type %s/%s!\n"
-#~ msgstr "lpq: יעד לא ידוע \"%s/%s\"!\n"
-
-#~ msgid "lp: Error - bad job ID!\n"
-#~ msgstr "lp: שגיאה - מזהה עבודה שגוי!\n"
-
-#~ msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
-#~ msgstr "lp: שגיאה - לא יכול להדפיס קבצים ולשנות עבודות בו-זמנית!\n"
-
-#~ msgid ""
-#~ "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-#~ msgstr ""
-#~ "lp: שגיאה - לא יכול להדפיס מ- stdin אם מסופקים קבצים או מזהה עבודה!\n"
-
-#~ msgid "lp: Expected character set after -S option!\n"
-#~ msgstr "lp: מצפה ל- character set לאחר האופציה -S!\n"
-
-#~ msgid "lp: Expected content type after -T option!\n"
-#~ msgstr "lp: מצפה לסוג תוכן לאחר האופציה -T!\n"
-
-#~ msgid "lp: Expected copies after -n option!\n"
-#~ msgstr ""
-#~ "lp: מצפה לכמות עותקים לאחר האופציה -n!\n"
-#~ " "
-
-#~ msgid "lp: Expected destination after -d option!\n"
-#~ msgstr "lp: מצפה ליעד אחרי האופציה -d!\n"
-
-#~ msgid "lp: Expected hold name after -H option!\n"
-#~ msgstr "lp: מצפה לשם עצירה לאחר האופציה -H!"
-
-#~ msgid "lp: Expected hostname after -h option!\n"
-#~ msgstr "lp: מצפה לשם מארח לאחר האופציה -h!\n"
-
-#~ msgid "lp: Expected job ID after -i option!\n"
-#~ msgstr "lp: מצפה למזהה עבודה לאחר האופציה -i!\n"
-
-#~ msgid "lp: Expected mode list after -y option!\n"
-#~ msgstr "lp: מצפה לרשימת מצבים לאחר האופציה -y!\n"
-
-#~ msgid "lp: Expected option string after -o option!\n"
-#~ msgstr "lp: מצפה למחרוזת אחרי האופציה -o!\n"
-
-#~ msgid "lp: Expected page list after -P option!\n"
-#~ msgstr "lp: מצפה לרשימת עמודים לאחר האופציה -P!\n"
-
-#~ msgid "lp: Expected priority after -%c option!\n"
-#~ msgstr "lp: מצפה לעדיפות אחרי האופציה -%c!\n"
-
-#~ msgid "lp: Expected title after -t option!\n"
-#~ msgstr "lp: מצפה לכותרת אחרי האופציה -t!\n"
-
-#~ msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
-#~ msgstr "lp: צריך מזהה עבודה (-i) לפני \"-H restart\"!\n"
-
-#~ msgid "lp: Priority must be between 1 and 100.\n"
-#~ msgstr "lp: עדיפות חייבת להיות בין 1 ל 100.\n"
-
-#~ msgid "lp: Too many files - \"%s\"\n"
-#~ msgstr "lp: יותר מדי קבצים - \"%s\"\n"
-
-#~ msgid "lp: Warning - character set option ignored!\n"
-#~ msgstr "lp: אזהרה - מתעלם מאופצית character set!\n"
-
-#~ msgid "lp: Warning - content type option ignored!\n"
-#~ msgstr "lp: אזהרה - מתעלם מאופצית סוג תוכן!\n"
-
-#~ msgid "lp: Warning - mode option ignored!\n"
-#~ msgstr "lp: אזהרה - מתעלם מאופצית מצב!\n"
-
-#~ msgid ""
-#~ "lp: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lp: שגיאה - משתנה הסביבה %s מציין יעד לא קיים \"%s\"!\n"
-
-#~ msgid "lp: error - no default destination available.\n"
-#~ msgstr "lp: שגיאה - אין יעד ברירת מחדל זמין.\n"
-
-#~ msgid "lp: error - scheduler not responding!\n"
-#~ msgstr "lp: שגיאה - מתזמן המשימות לא מגיב!\n"
-
-#~ msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lp: שגיאה - לא מצליח לכתוב לקובץ זמני \"%s\" - %s\n"
-
-#~ msgid "lp: restart-job failed: %s\n"
-#~ msgstr "lp: שחזור-עבודה (restart-job) נכשל: %s\n"
-
-#~ msgid "lp: set-job-attributes failed: %s\n"
-#~ msgstr "lp: קביעת-מאפייני-עבודה (set-job-attributes) נכשל: %s\n"
-
-#~ msgid "lp: stdin is empty, so no job has been sent.\n"
-#~ msgstr "lp: stdin ריק, לפיכך לא נשלחה אף עבודה.\n"
-
-#~ msgid "lp: unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lp: לא מצליח ליצור קובץ זמני \"%s\" - %s\n"
-
-#~ msgid "lpadmin: %s failed: %s\n"
-#~ msgstr "lpadmin: %s נכשל: %s\n"
-
-#~ msgid "lpadmin: add-printer (set description) failed: %s\n"
-#~ msgstr "lpadmin: הוספת-מדפסת (קביעת תאור) נכשלה: %s\n"
-
-#~ msgid "lpadmin: add-printer (set location) failed: %s\n"
-#~ msgstr "lpadmin: הוספת-מדפסת (קביעת מיקום) נכשלה: %s\n"
-
-#~ msgid "lpadmin: add-printer (set model) failed: %s\n"
-#~ msgstr "lpadmin: הוספת-מדפסת (קביעת דגם) נכשלה: %s\n"
-
-#~ msgid "lpinfo: cups-get-devices failed: %s\n"
-#~ msgstr "lpinfo: cups-get-devices נכשל: %s\n"
-
-#~ msgid "lpinfo: cups-get-ppds failed: %s\n"
-#~ msgstr "lpinfo: cups-get-ppds נכשל: %s\n"
-
-#~ msgid "lpmove: move-job failed: %s\n"
-#~ msgstr "lpmove: העבר-עבודה (move-job) נכשל: %s\n"
-
-#~ msgid "lpoptions: Destination %s has no PPD file!\n"
-#~ msgstr "lpoptions: ‫ליעד %s אין קובץ PPD!\n"
-
-#~ msgid "lpq: Unable to contact server!\n"
-#~ msgstr "lpq: לא מצליח לתקשר עם השרת!\n"
-
-#~ msgid "lpq: Unknown destination \"%s\"!\n"
-#~ msgstr "lpq: יעד לא ידוע \"%s\"!\n"
-
-#~ msgid "lpq: error - no default destination available.\n"
-#~ msgstr "lpq: שגיאה - אין יעד ברירת מחדל זמין.\n"
-
-#~ msgid "lpq: get-jobs failed: %s\n"
-#~ msgstr "lpq: get-jobs נכשל: %s\n"
-
-#~ msgid "lpq: get-printer-attributes failed: %s\n"
-#~ msgstr "lpq: get-printer-attributes נכשל: %s\n"
-
-#~ msgid ""
-#~ "lpr: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lpr: שגיאה - משתנה הסביבה %s מציין יעד לא קיים \"%s\"!\n"
-
-#~ msgid "lpr: error - expected copy count after -# option!\n"
-#~ msgstr "lpr: שגיאה - מצפה למספר עותקים לאחר אופציה -#!\n"
-
-#~ msgid "lpr: error - expected destination after -P option!\n"
-#~ msgstr "lpr: שגיאה - מצפה ליעד לאחר אופציה -P!\n"
-
-#~ msgid "lpr: error - expected name after -%c option!\n"
-#~ msgstr "lpr: שגיאה - מצפה לשם לאחר אופציה -%c!\n"
-
-#~ msgid "lpr: error - expected option=value after -o option!\n"
-#~ msgstr "lpr: שגיאה - מצפה ל אופציה=ערך לאחר אופציה -o!\n"
-
-#~ msgid "lpr: error - expected username after -U option!\n"
-#~ msgstr "lpr: שגיאה - מצפה לשם משתמש לאחר אופציה -U!\n"
-
-#~ msgid "lpr: error - expected value after -%c option!\n"
-#~ msgstr "lpr: שגיאה - מצפה לערך לאחר אופציה -%c!\n"
-
-#~ msgid "lpr: error - no default destination available.\n"
-#~ msgstr "lpr: שגיאה - אין יעד ברירת מחדל זמין.\n"
-
-#~ msgid "lpr: error - scheduler not responding!\n"
-#~ msgstr "lpr: שגיאה - מתזמן לא מגיב!\n"
-
-#~ msgid "lpr: error - stdin is empty, so no job has been sent.\n"
-#~ msgstr "lpr: שגיאה - stdin ריק, לפיכך לא נשלחה אף עבודה.\n"
-
-#~ msgid "lpr: error - too many files - \"%s\"\n"
-#~ msgstr "lpr: שגיאה - יותר מדי קבצים - \"%s\"\n"
-
-#~ msgid "lpr: error - unable to access \"%s\" - %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן לגשת ל \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן ליצור קובץ זמני \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unable to print file: %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן להדפיס קובץ: %s\n"
-
-#~ msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן לכתוב לקובץ הזמני \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unknown option '%c'!\n"
-#~ msgstr "lpr: שגיאה - אופציה לא ידועה '%c'!\n"
-
-#~ msgid ""
-#~ "lpr: warning - '%c' format modifier not supported - output may not be "
-#~ "correct!\n"
-#~ msgstr "lpr: אזהרה - משנה מבנה '%c' לא נתמך - פלט עלול להיות לא תקין!\n"
-
-#~ msgid "lpr: warning - email notification is not currently supported!\n"
-#~ msgstr "lpr: אזהרה - הודעת דוא\"ל לא נתמכת כרגע!\n"
-
-#~ msgid "lprm: Job or printer not found!\n"
-#~ msgstr "lprm: עבודה או מדפסת לא נמצאו!\n"
-
-#~ msgid "lprm: Not authorized to lprm job(s)!\n"
-#~ msgstr "lprm: לא מורשה למחוק עבודה/ות!\n"
-
-#~ msgid "lprm: Unable to lprm job(s)!\n"
-#~ msgstr "lprm: לא יכול למחוק עבודה/ות!\n"
-
-#~ msgid "lprm: Unknown destination \"%s\"!\n"
-#~ msgstr "lprm: יעד לא ידוע  \"%s\"!\n"
-
-#~ msgid "lprm: Unknown option '%c'!\n"
-#~ msgstr "lprm: אופציה לא ידועה '%c'!\n"
-
-#~ msgid "lprm: You don't own job ID %d!\n"
-#~ msgstr "lprm: אתה לא הבעלים של עבודה מספר %d!\n"
-
-#~ msgid "lpstat: Invalid destination name in list \"%s\"!\n"
-#~ msgstr "lpstat: שם יעד לא חוקי ברשימה \"%s\"!\n"
-
-#~ msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
-#~ msgstr "lpstat: צריך \"completed\" או \"not-completed\" אחרי -W!\n"
-
-#~ msgid ""
-#~ "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-#~ msgstr ""
-#~ "lpstat: ‫צריך \"completed\", \"not-completed\", או \"all\" אחרי -W!\n"
-
-#~ msgid "lpstat: The -b option requires a destination argument.\n"
-#~ msgstr "lpstat: האופציה -b דורשת ארגומנט יעד.\n"
-
-#~ msgid "lpstat: Unknown destination \"%s\"!\n"
-#~ msgstr "lpstat: יעד לא ידוע \"%s\"!\n"
-
-#~ msgid "lpstat: Unknown option '%c'!\n"
-#~ msgstr "lpstat: אופציה לא ידועה '%c'!\n"
-
-#~ msgid "lpstat: get-classes failed: %s\n"
-#~ msgstr "lpstat: get-classes נכשלה: %s\n"
-
-#~ msgid "lpstat: get-jobs failed: %s\n"
-#~ msgstr "lpstat: get-jobs נכשלה: %s\n"
-
-#~ msgid "lpstat: get-printers failed: %s\n"
-#~ msgstr "lpstat: get-printers נכשלה: %s\n"
index b3734910cb982dfee74b1d2ce79be528b473fdba..f9b73ae96c8c1e8e20a53e4394b0d9e9de34e43f 100644 (file)
@@ -615,7 +615,7 @@ msgstr "ERROR: impossibile biforcare pictwpstops: %s\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgstr "ERROR: impossibile ottenere il documento PPD per la stampante \"%s\": %s.\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgstr "ERROR: impossibile ottenere il documento PPD per la stampante \"%s\": %s.\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "ERROR: impossibile ottenere gli attributi (%s) della stampa %d!\n"
+msgstr "ERROR: impossibile ottenere gli attributi (%2$s) della stampa %1$d!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgstr "ERROR: impossibile ottenere lo stato della stampante (%s)!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgstr "ERROR: impossibile ottenere lo stato della stampante (%s)!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
@@ -663,7 +663,7 @@ msgstr "ERROR: ordine documento sconosciuto \"%s\"\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr "ERROR: carattere formato sconosciuto\"%c\"\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr "ERROR: carattere formato sconosciuto\"%c\"\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "ERROR: opzione \"%c\" sconosciuta con valore \"%s\"!\n"
+msgstr "ERROR: opzione \"%s\" sconosciuta con valore \"%s\"!\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
 msgstr "ERROR: modalità di stampa \"%s\" sconosciuta!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
 msgstr "ERROR: modalità di stampa \"%s\" sconosciuta!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
@@ -1223,7 +1223,7 @@ msgstr "WARNING: questo documento non è conforme alle convenzioni Adobe sulla s
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgstr "WARNING: scelta \"%s\" sconosciuta per l'opzione \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgstr "WARNING: scelta \"%s\" sconosciuta per l'opzione \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "WARNING: opzione '%c' sconosciuta!\n"
+msgstr "WARNING: opzione '%s' sconosciuta!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgstr "WARNING: tasso baud %s non supportato!\n"
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgstr "WARNING: tasso baud %s non supportato!\n"
 msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
@@ -1247,7 +1247,7 @@ msgstr "esecuzione di cups-driverd fallita."
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: nessun documento PPD per la stampante \"%s\" - %s\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: nessun documento PPD per la stampante \"%s\" - %s\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cupsctl: opzione '%c' sconosciuta!\n"
+msgstr "cupsctl: opzione '%s' sconosciuta!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
 msgstr "cupsctl: opzione '%c' sconosciuta!\n"
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
 msgstr "cupsctl: opzione '%c' sconosciuta!\n"
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
@@ -1379,7 +1379,7 @@ msgstr "lpoptions: nessuna stampante!?!\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: impossibile aggiungere una stampante o un'istanza: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: impossibile aggiungere una stampante o un'istanza: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: impossibile aprire il file PPD per %s!\n"
+msgstr "lpoptions: impossibile aprire il file PPD per %s: %s\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: impossibile aprire il documento PPD per %s!\n"
 msgid "lpoptions: Unknown printer or class!\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: impossibile aprire il documento PPD per %s!\n"
 msgid "lpoptions: Unknown printer or class!\n"
index 38d040d9a4a00cc3077cfe6eeca3bfa27eb62937..493332773c625bce91adb64f7a07529d1423dd6b 100644 (file)
@@ -385,10 +385,10 @@ msgstr "      %s  cupsFilter ファイル \"%s\" が見つかりません!\n"
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
 msgstr "      %s  cupsPreFilter ファイル \"%s\" が見つかりません!\n"
 
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
 msgstr "      %s  cupsPreFilter ファイル \"%s\" が見つかりません!\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgstr ""
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgstr ""
-"      %s オプション *UIConstraint 内の %s %s \"*%s %s *%s %s\" が見つかりませ"
+"      %s オプション *UIConstraint 内の %s \"*%s %s *%s %s\" が見つかりませ"
 "ん!\n"
 
 #, c-format
 "ん!\n"
 
 #, c-format
@@ -504,9 +504,9 @@ msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgstr ""
 "      **失敗**  無効な LanguageVersion %s - English でなければなりません!\n"
 
 msgstr ""
 "      **失敗**  無効な LanguageVersion %s - English でなければなりません!\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
-msgstr "      **失敗**  デフォルトのオプションコードが解釈できません:s\n"
+msgstr "      **失敗**  デフォルトのオプションコードが解釈できません:s: %s\n"
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -733,12 +733,12 @@ msgstr ""
 "    %%BoundingBox: コメントが見つからないか不正です!\n"
 "        REF:39 ページ、%%BoundingBox:\n"
 
 "    %%BoundingBox: コメントが見つからないか不正です!\n"
 "        REF:39 ページ、%%BoundingBox:\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "    Missing or bad %%Page: comments!\n"
 "        REF: Page 53, %%Page:\n"
 msgstr ""
 msgid ""
 "    Missing or bad %%Page: comments!\n"
 "        REF: Page 53, %%Page:\n"
 msgstr ""
-"    %Page: コメントが見つからないか不正です!\n"
+"    %%Page: コメントが見つからないか不正です!\n"
 "        REF:53 ページ、%%Page:\n"
 
 #, c-format
 "        REF:53 ページ、%%Page:\n"
 
 #, c-format
@@ -1525,9 +1525,9 @@ msgstr "ERROR: pictwpstops を待つことができません: %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 msgstr "ERROR: %d バイトを \"%s\" に書き込めません:%s\n"
 
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 msgstr "ERROR: %d バイトを \"%s\" に書き込めません:%s\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "ERROR: Unable to write print data: %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
-msgstr "ERROR: プリントデータ %s を書き込めません:%s\n"
+msgstr "ERROR: プリントデータ %s を書き込めません:\n"
 
 msgid "ERROR: Unable to write raster data to driver!\n"
 msgstr "ERROR: ラスターデータをドライバに書き込めません!\n"
 
 msgid "ERROR: Unable to write raster data to driver!\n"
 msgstr "ERROR: ラスターデータをドライバに書き込めません!\n"
index 13e57b28ee997b139e27061f769a851ecd7af4e8..6edc903a14a715aad36eedc08a7f1860597b00a6 100644 (file)
@@ -783,7 +783,7 @@ msgid ""
 "      **FAIL**  Unable to open PPD file - %s on line %d.\n"
 msgstr ""
 " 실패\n"
 "      **FAIL**  Unable to open PPD file - %s on line %d.\n"
 msgstr ""
 " 실패\n"
-"      **실패**  PPD 파일을 열 수 없습니다 - %d번째 줄에 있는 %s\n"
+"      **실패**  PPD 파일을 열 수 없습니다 - %2$d번째 줄에 있는 %1$s\n"
 
 msgid " PASS\n"
 msgstr " 통과\n"
 
 msgid " PASS\n"
 msgstr " 통과\n"
@@ -1512,7 +1512,7 @@ msgstr "ERROR: pictwpstops를 기다릴 수 없음: %s\n"
 
 #, c-format
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 
 #, c-format
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "ERROR: \"%s\"에 %d바이트를 쓸 수 없음: %s\n"
+msgstr "ERROR: \"%2$s\"에 %1$d바이트를 쓸 수 없음: %s\n"
 
 #, c-format
 msgid "ERROR: Unable to write print data: %s\n"
 
 #, c-format
 msgid "ERROR: Unable to write print data: %s\n"
@@ -1559,7 +1559,7 @@ msgstr "ERROR: 감마=1000을 사용하는, 지원되지 않는 %s 감마 값!\n
 
 #, c-format
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
 
 #, c-format
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: number-up=1을 사용하는, 지원되지 않는 %s 초과 값!\n"
+msgstr "ERROR: number-up=1을 사용하는, 지원되지 않는 %d 초과 값!\n"
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -1661,11 +1661,11 @@ msgstr "도움말"
 
 #, c-format
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
 
 #, c-format
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
-msgstr "INFO: %s 프린터의 %s 호스트에 연결을 시도하는 중\n"
+msgstr "INFO: %2$s 프린터의 %1$s 호스트에 연결을 시도하는 중\n"
 
 #, c-format
 msgid "INFO: Attempting to connect to host %s on port %d\n"
 
 #, c-format
 msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "INFO: %d번 포트에 있는 %s 호스트에 연결을 시도하는 중\n"
+msgstr "INFO: %2$d번 포트에 있는 %1$s 호스트에 연결을 시도하는 중\n"
 
 msgid "INFO: Canceling print job...\n"
 msgstr "INFO: 프린트 작업 취소 중...\n"
 
 msgid "INFO: Canceling print job...\n"
 msgstr "INFO: 프린트 작업 취소 중...\n"
@@ -1676,7 +1676,7 @@ msgstr "INFO: %s에 연결됨...\n"
 
 #, c-format
 msgid "INFO: Connecting to %s on port %d...\n"
 
 #, c-format
 msgid "INFO: Connecting to %s on port %d...\n"
-msgstr "INFO: %d번 포트에 있는 %s에 연결 중...\n"
+msgstr "INFO: %2$d번 포트에 있는 %1$s에 연결 중...\n"
 
 msgid "INFO: Control file sent successfully\n"
 msgstr "INFO: 제어 파일을 성공적으로 보냄\n"
 
 msgid "INFO: Control file sent successfully\n"
 msgstr "INFO: 제어 파일을 성공적으로 보냄\n"
@@ -1739,7 +1739,7 @@ msgstr "INFO: 제어 파일 보내는 중(%lu바이트)\n"
 
 #, c-format
 msgid "INFO: Sending control file (%u bytes)\n"
 
 #, c-format
 msgid "INFO: Sending control file (%u bytes)\n"
-msgstr "INFO: 제어 파일 보내는 중(%lu바이트)\n"
+msgstr "INFO: 제어 파일 보내는 중(%u바이트)\n"
 
 msgid "INFO: Sending data\n"
 msgstr "INFO: 데이터 보내는 중\n"
 
 msgid "INFO: Sending data\n"
 msgstr "INFO: 데이터 보내는 중\n"
@@ -1845,7 +1845,7 @@ msgstr "작업 #%d이(가) 유지되지 않음!"
 
 #, c-format
 msgid "Job #%s does not exist!"
 
 #, c-format
 msgid "Job #%s does not exist!"
-msgstr "작업 #%d이(가) 존재하지 않음!"
+msgstr "작업 #%s이(가) 존재하지 않음!"
 
 #, c-format
 msgid "Job %d not found!"
 
 #, c-format
 msgid "Job %d not found!"
index c77c496a6fa34c23e9a96011c7280c48af063fe2..8c7de93774cdd45b20ba2e63d24070c391561795 100644 (file)
@@ -675,7 +675,7 @@ msgstr "ERROR: Lysstyrkeverdien %s støttes ikke, bruker brightness=100!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgstr "ERROR: Gammaverdien %s støttes ikke, bruker gamma=1000!\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgstr "ERROR: Gammaverdien %s støttes ikke, bruker gamma=1000!\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: Number-up-verdien %s støttes ikke, bruker number-up=1!\n"
+msgstr "ERROR: Number-up-verdien %d støttes ikke, bruker number-up=1!\n"
 msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
 msgstr "ERROR: Number-up-layout-verdien %s støttes ikke, bruker number-up-layout=lrtb!\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
 msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
 msgstr "ERROR: Number-up-layout-verdien %s støttes ikke, bruker number-up-layout=lrtb!\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
index 6858c7696ab4058659ee536ae708da30ce8a67b1..0c9abd7a22e7a3da32e9e39367ff1bd1653bc1fb 100644 (file)
@@ -125,7 +125,7 @@ msgstr "        OSTRZEŻENIE    \"%s %s\" jest w konflikcie z \"%s %s\"\n
 msgid "        WARN    %s has no corresponding options!\n"
 msgstr "        OSTRZEŻENIE    %s nie posiada odpowiadających opcji!\n"
 msgid "        WARN    %s shares a common prefix with %s\n                REF: Page 15, section 3.2.\n"
 msgid "        WARN    %s has no corresponding options!\n"
 msgstr "        OSTRZEŻENIE    %s nie posiada odpowiadających opcji!\n"
 msgid "        WARN    %s shares a common prefix with %s\n                REF: Page 15, section 3.2.\n"
-msgstr "        OSTRZEŻENIE    %s współdzieli wspólny przedrostek z %s %s\n                REF: strona 15, sekcja 3.2.\n"
+msgstr "        OSTRZEŻENIE    %s współdzieli wspólny przedrostek z %s\n                REF: strona 15, sekcja 3.2.\n"
 msgid "        WARN    Default choices conflicting!\n"
 msgstr "        OSTRZEŻENIE    Konflikt domyślnych wyborów!\n"
 msgid "        WARN    Duplex option keyword %s should be named Duplex or JCLDuplex!\n                REF: Page 122, section 5.17\n"
 msgid "        WARN    Default choices conflicting!\n"
 msgstr "        OSTRZEŻENIE    Konflikt domyślnych wyborów!\n"
 msgid "        WARN    Duplex option keyword %s should be named Duplex or JCLDuplex!\n                REF: Page 122, section 5.17\n"
@@ -333,7 +333,7 @@ msgstr "%s: nie wiem co robić!\n"
 msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr "%s: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s\"!\n"
 msgid "%s: Error - bad job ID!\n"
 msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr "%s: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s\"!\n"
 msgid "%s: Error - bad job ID!\n"
-msgstr "%: błąd - błędny ID zlecenia!\n"
+msgstr "%s: błąd - błędny ID zlecenia!\n"
 msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr "%s: błąd - nie można jednocześnie drukować plików i zmieniać zlecenia!\n"
 msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
 msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr "%s: błąd - nie można jednocześnie drukować plików i zmieniać zlecenia!\n"
 msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
@@ -343,13 +343,13 @@ msgstr "%s: błąd - oczekiwany zestaw znaków po opcji \"-S\"!\n"
 msgid "%s: Error - expected content type after '-T' option!\n"
 msgstr "%s: błąd - oczekiwany typ zawartości po opcji \"-T\"!\n"
 msgid "%s: Error - expected copies after '-n' option!\n"
 msgid "%s: Error - expected content type after '-T' option!\n"
 msgstr "%s: błąd - oczekiwany typ zawartości po opcji \"-T\"!\n"
 msgid "%s: Error - expected copies after '-n' option!\n"
-msgstr "%: błąd - oczekiwane kopie po opcji \"-n\"!\n"
+msgstr "%s: błąd - oczekiwane kopie po opcji \"-n\"!\n"
 msgid "%s: Error - expected copy count after '-#' option!\n"
 msgstr "%s: błąd - oczekiwany licznik kopii po opcji \"-#\"!\n"
 msgid "%s: Error - expected destination after '-P' option!\n"
 msgstr "%s: błąd - oczekiwany cel po opcji \"-P\"!\n"
 msgid "%s: Error - expected destination after '-b' option!\n"
 msgid "%s: Error - expected copy count after '-#' option!\n"
 msgstr "%s: błąd - oczekiwany licznik kopii po opcji \"-#\"!\n"
 msgid "%s: Error - expected destination after '-P' option!\n"
 msgstr "%s: błąd - oczekiwany cel po opcji \"-P\"!\n"
 msgid "%s: Error - expected destination after '-b' option!\n"
-msgstr "%: błąd - oczekiwany cel po opcji \"-b\"!\n"
+msgstr "%s: błąd - oczekiwany cel po opcji \"-b\"!\n"
 msgid "%s: Error - expected destination after '-d' option!\n"
 msgstr "%s: błąd - oczekiwany cel po opcji \"-d\"!\n"
 msgid "%s: Error - expected form after '-f' option!\n"
 msgid "%s: Error - expected destination after '-d' option!\n"
 msgstr "%s: błąd - oczekiwany cel po opcji \"-d\"!\n"
 msgid "%s: Error - expected form after '-f' option!\n"
@@ -367,7 +367,7 @@ msgstr "%s: błąd - oczekiwana nazwa po opcji \"-%c\"!\n"
 msgid "%s: Error - expected option string after '-o' option!\n"
 msgstr "%s: błąd - oczekiwany łańcuch tekstowy opcji po opcji \"-o\"!\n"
 msgid "%s: Error - expected page list after '-P' option!\n"
 msgid "%s: Error - expected option string after '-o' option!\n"
 msgstr "%s: błąd - oczekiwany łańcuch tekstowy opcji po opcji \"-o\"!\n"
 msgid "%s: Error - expected page list after '-P' option!\n"
-msgstr "%: błąd - oczekiwana lista stron po opcji \"-P\"!\n"
+msgstr "%s: błąd - oczekiwana lista stron po opcji \"-P\"!\n"
 msgid "%s: Error - expected priority after '-%c' option!\n"
 msgstr "%s: błąd - oczekiwany priorytet po opcji \"-%c\"!\n"
 msgid "%s: Error - expected reason text after '-r' option!\n"
 msgid "%s: Error - expected priority after '-%c' option!\n"
 msgstr "%s: błąd - oczekiwany priorytet po opcji \"-%c\"!\n"
 msgid "%s: Error - expected reason text after '-r' option!\n"
@@ -421,7 +421,7 @@ msgstr "%s: nie można połączyć się z serwerem: %s\n"
 msgid "%s: Unable to contact server!\n"
 msgstr "%s: nie można skontaktować się z serwerem!\n"
 msgid "%s: Unknown destination \"%s\"!\n"
 msgid "%s: Unable to contact server!\n"
 msgstr "%s: nie można skontaktować się z serwerem!\n"
 msgid "%s: Unknown destination \"%s\"!\n"
-msgstr "%: nieznany cel \"%s\"!\n"
+msgstr "%s: nieznany cel \"%s\"!\n"
 msgid "%s: Unknown option '%c'!\n"
 msgstr "%s: nieznana opcja \"%c\"!\n"
 msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
 msgid "%s: Unknown option '%c'!\n"
 msgstr "%s: nieznana opcja \"%c\"!\n"
 msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
@@ -461,7 +461,7 @@ msgstr "Dodaj subskrypcję RSS"
 msgid "Administration"
 msgstr "Administracja"
 msgid "Attempt to set %s printer-state to bad value %d!"
 msgid "Administration"
 msgstr "Administracja"
 msgid "Attempt to set %s printer-state to bad value %d!"
-msgstr "Próba ustawienia błędnej wartości %d printer-state %s!"
+msgstr "Próba ustawienia błędnej wartości %2$d printer-state %1$s!"
 msgid "Attribute groups are out of order (%x < %x)!"
 msgstr "Grupy właściwości są nieuporządkowane (%x < %x)!"
 msgid "Bad OpenGroup"
 msgid "Attribute groups are out of order (%x < %x)!"
 msgstr "Grupy właściwości są nieuporządkowane (%x < %x)!"
 msgid "Bad OpenGroup"
@@ -959,9 +959,9 @@ msgstr "Odbiornik jest niemal pełny."
 msgid "Output bin full!"
 msgstr "Odbiornik jest pełny!"
 msgid "Output for printer %s is sent to %s\n"
 msgid "Output bin full!"
 msgstr "Odbiornik jest pełny!"
 msgid "Output for printer %s is sent to %s\n"
-msgstr "Wyjście dla drukarki % zostało wysłane do %s\n"
+msgstr "Wyjście dla drukarki %s zostało wysłane do %s\n"
 msgid "Output for printer %s is sent to remote printer %s on %s\n"
 msgid "Output for printer %s is sent to remote printer %s on %s\n"
-msgstr "Wyjście dla drukarki % zostało wysłane do zdalnej drukarki %s na %s\n"
+msgstr "Wyjście dla drukarki %s zostało wysłane do zdalnej drukarki %s na %s\n"
 msgid "Output for printer %s/%s is sent to %s\n"
 msgstr "Wyjście dla drukarki %s/%s zostało wysłane do %s\n"
 msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
 msgid "Output for printer %s/%s is sent to %s\n"
 msgstr "Wyjście dla drukarki %s/%s zostało wysłane do %s\n"
 msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
@@ -1381,7 +1381,7 @@ msgstr "lpoptions: brak drukarek?!?\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: nie można dodać drukarki lub przykładu: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: nie można dodać drukarki lub przykładu: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: nie można otworzyć pliku PPD dla %s!\n"
+msgstr "lpoptions: nie można otworzyć pliku PPD dla %s: %s\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: nie można otworzyć pliku PPD dla %s!\n"
 msgid "lpoptions: Unknown printer or class!\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: nie można otworzyć pliku PPD dla %s!\n"
 msgid "lpoptions: Unknown printer or class!\n"
index aceef7344a489c983683998cd15e79619f3ac168..00ad3bac71b4ef712b91735d210081da786f12fe 100644 (file)
-#
-# "$Id$"
-#
-#   Message catalog template for the Common UNIX Printing System (CUPS).
-#
-#   Copyright 2007 by Apple Inc.
-#   Copyright 2005-2007 by Easy Software Products.
-#
-#   These coded instructions, statements, and computer programs are the
-#   property of Apple Inc. and are protected by Federal copyright
-#   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
-#   which should have been included with this file.  If this file is
-#   file is missing or damaged, see the license at "http://www.cups.org/".
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CUPS 1.3\n"
-"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2007-07-27 14:55-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
 msgid "\t\t(all)\n"
 msgid "\t\t(all)\n"
-msgstr ""
-
+msgstr "\t\t(tudo)\n"
 msgid "\t\t(none)\n"
 msgid "\t\t(none)\n"
-msgstr ""
-
-#, c-format
+msgstr "\t\t(sem)\n"
 msgid "\t%d entries\n"
 msgid "\t%d entries\n"
-msgstr ""
-
+msgstr "\t%d entradas\n"
 msgid "\tAfter fault: continue\n"
 msgid "\tAfter fault: continue\n"
-msgstr ""
-
+msgstr "\tApós falha: continuar\n"
 msgid "\tAlerts:"
 msgid "\tAlerts:"
-msgstr ""
-
+msgstr "\tAlertas:"
 msgid "\tBanner required\n"
 msgid "\tBanner required\n"
-msgstr ""
-
+msgstr "\tFaixa publicitária requerida\n"
 msgid "\tCharset sets:\n"
 msgid "\tCharset sets:\n"
-msgstr ""
-
+msgstr "\tConjuntos charset:\n"
 msgid "\tConnection: direct\n"
 msgid "\tConnection: direct\n"
-msgstr ""
-
+msgstr "\tLigação: directa\n"
 msgid "\tConnection: remote\n"
 msgid "\tConnection: remote\n"
-msgstr ""
-
+msgstr "\tLigação: remota\n"
 msgid "\tDefault page size:\n"
 msgid "\tDefault page size:\n"
-msgstr ""
-
+msgstr "\tTamanho de página predefinido:\n"
 msgid "\tDefault pitch:\n"
 msgid "\tDefault pitch:\n"
-msgstr ""
-
+msgstr "\tPitch predefinido:\n"
 msgid "\tDefault port settings:\n"
 msgid "\tDefault port settings:\n"
-msgstr ""
-
-#, c-format
+msgstr "\tPredefinições de porta:\n"
 msgid "\tDescription: %s\n"
 msgid "\tDescription: %s\n"
-msgstr ""
-
-msgid ""
-"\tForm mounted:\n"
-"\tContent types: any\n"
-"\tPrinter types: unknown\n"
-msgstr ""
-
+msgstr "\tDescrição: %s\n"
+msgid "\tForm mounted:\n\tContent types: any\n\tPrinter types: unknown\n"
+msgstr "\tFormato montado:\n\tTipos de conteúdo: qualquer\n\tTipos de impressora: desconhecido\n"
 msgid "\tForms allowed:\n"
 msgid "\tForms allowed:\n"
-msgstr ""
-
-#, c-format
+msgstr "\tFormatos permitidos:\n"
 msgid "\tInterface: %s.ppd\n"
 msgid "\tInterface: %s.ppd\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s.ppd\n"
 msgid "\tInterface: %s/interfaces/%s\n"
 msgid "\tInterface: %s/interfaces/%s\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s/interfaces/%s\n"
 msgid "\tInterface: %s/ppd/%s.ppd\n"
 msgid "\tInterface: %s/ppd/%s.ppd\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s/ppd/%s.ppd\n"
 msgid "\tLocation: %s\n"
 msgid "\tLocation: %s\n"
-msgstr ""
-
+msgstr "\tLocalização: %s\n"
 msgid "\tOn fault: no alert\n"
 msgid "\tOn fault: no alert\n"
-msgstr ""
-
+msgstr "\tEm falha: sem alerta\n"
 msgid "\tUsers allowed:\n"
 msgid "\tUsers allowed:\n"
-msgstr ""
-
+msgstr "\tUtilizadores permitidos:\n"
 msgid "\tUsers denied:\n"
 msgid "\tUsers denied:\n"
-msgstr ""
-
+msgstr "\tUtilizadores negados:\n"
 msgid "\tdaemon present\n"
 msgid "\tdaemon present\n"
-msgstr ""
-
+msgstr "\tdaemon presente\n"
 msgid "\tno entries\n"
 msgid "\tno entries\n"
-msgstr ""
-
-#, c-format
+msgstr "\tsem entradas\n"
 msgid "\tprinter is on device '%s' speed -1\n"
 msgid "\tprinter is on device '%s' speed -1\n"
-msgstr ""
-
+msgstr "\timpressora está no periférico '%s' velocidade -1\n"
 msgid "\tprinting is disabled\n"
 msgid "\tprinting is disabled\n"
-msgstr ""
-
+msgstr "\timpressão desactivada\n"
 msgid "\tprinting is enabled\n"
 msgid "\tprinting is enabled\n"
-msgstr ""
-
-#, c-format
+msgstr "\timpressão activada\n"
 msgid "\tqueued for %s\n"
 msgid "\tqueued for %s\n"
-msgstr ""
-
+msgstr "\tem fila para %s\n"
 msgid "\tqueuing is disabled\n"
 msgid "\tqueuing is disabled\n"
-msgstr ""
-
+msgstr "\tcolocação em fila desactivada\n"
 msgid "\tqueuing is enabled\n"
 msgid "\tqueuing is enabled\n"
-msgstr ""
-
+msgstr "\tcolocação em fila activada\n"
 msgid "\treason unknown\n"
 msgid "\treason unknown\n"
-msgstr ""
-
-msgid ""
-"\n"
-"    DETAILED CONFORMANCE TEST RESULTS\n"
-msgstr ""
-
+msgstr "\tmotivo desconhecido\n"
+msgid "\n    DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr "\n    RESULTADOS DETALHADOS DO TESTE DE CONFORMIDADE\n"
 msgid "                REF: Page 15, section 3.1.\n"
 msgid "                REF: Page 15, section 3.1.\n"
-msgstr ""
-
+msgstr "                REF: Página 15, secção 3.1.\n"
 msgid "                REF: Page 15, section 3.2.\n"
 msgid "                REF: Page 15, section 3.2.\n"
-msgstr ""
-
+msgstr "                REF: Página 15, secção 3.2.\n"
 msgid "                REF: Page 19, section 3.3.\n"
 msgid "                REF: Page 19, section 3.3.\n"
-msgstr ""
-
+msgstr "                REF: Página 19, secção 3.3.\n"
 msgid "                REF: Page 20, section 3.4.\n"
 msgid "                REF: Page 20, section 3.4.\n"
-msgstr ""
-
+msgstr "                REF: Página 20, secção 3.4.\n"
 msgid "                REF: Page 27, section 3.5.\n"
 msgid "                REF: Page 27, section 3.5.\n"
-msgstr ""
-
+msgstr "                REF: Página 27, secção 3.5.\n"
 msgid "                REF: Page 42, section 5.2.\n"
 msgid "                REF: Page 42, section 5.2.\n"
-msgstr ""
-
+msgstr "                REF: Página 42, secção 5.2.\n"
 msgid "                REF: Pages 16-17, section 3.2.\n"
 msgid "                REF: Pages 16-17, section 3.2.\n"
-msgstr ""
-
+msgstr "                REF: Páginas 16-17, secção 3.2.\n"
 msgid "                REF: Pages 42-45, section 5.2.\n"
 msgid "                REF: Pages 42-45, section 5.2.\n"
-msgstr ""
-
+msgstr "                REF: Páginas 42-45, secção 5.2.\n"
 msgid "                REF: Pages 45-46, section 5.2.\n"
 msgid "                REF: Pages 45-46, section 5.2.\n"
-msgstr ""
-
+msgstr "                REF: Páginas 45-46, secção 5.2.\n"
 msgid "                REF: Pages 48-49, section 5.2.\n"
 msgid "                REF: Pages 48-49, section 5.2.\n"
-msgstr ""
-
+msgstr "                REF: Páginas 48-49, secção 5.2.\n"
 msgid "                REF: Pages 52-54, section 5.2.\n"
 msgid "                REF: Pages 52-54, section 5.2.\n"
-msgstr ""
-
-#, c-format
+msgstr "                REF: Páginas 52-54, secção 5.2.\n"
 msgid "        %-39.39s %.0f bytes\n"
 msgid "        %-39.39s %.0f bytes\n"
-msgstr ""
-
-#, c-format
+msgstr "        %-39.39s %.0f bytes\n"
 msgid "        PASS    Default%s\n"
 msgid "        PASS    Default%s\n"
-msgstr ""
-
+msgstr "        PASS    Predefinição%s\n"
 msgid "        PASS    DefaultImageableArea\n"
 msgid "        PASS    DefaultImageableArea\n"
-msgstr ""
-
+msgstr "        PASS    DefaultImageableArea\n"
 msgid "        PASS    DefaultPaperDimension\n"
 msgid "        PASS    DefaultPaperDimension\n"
-msgstr ""
-
+msgstr "        PASS    DefaultPaperDimension\n"
 msgid "        PASS    FileVersion\n"
 msgid "        PASS    FileVersion\n"
-msgstr ""
-
+msgstr "        PASS    FileVersion\n"
 msgid "        PASS    FormatVersion\n"
 msgid "        PASS    FormatVersion\n"
-msgstr ""
-
+msgstr "        PASS    FormatVersion\n"
 msgid "        PASS    LanguageEncoding\n"
 msgid "        PASS    LanguageEncoding\n"
-msgstr ""
-
+msgstr "        PASS    LanguageEncoding\n"
 msgid "        PASS    LanguageVersion\n"
 msgid "        PASS    LanguageVersion\n"
-msgstr ""
-
+msgstr "        PASS    LanguageVersion\n"
 msgid "        PASS    Manufacturer\n"
 msgid "        PASS    Manufacturer\n"
-msgstr ""
-
+msgstr "        PASS    Fabricante\n"
 msgid "        PASS    ModelName\n"
 msgid "        PASS    ModelName\n"
-msgstr ""
-
+msgstr "        PASS    ModelName\n"
 msgid "        PASS    NickName\n"
 msgid "        PASS    NickName\n"
-msgstr ""
-
+msgstr "        PASS    NickName\n"
 msgid "        PASS    PCFileName\n"
 msgid "        PASS    PCFileName\n"
-msgstr ""
-
+msgstr "        PASS    PCFileName\n"
 msgid "        PASS    PSVersion\n"
 msgid "        PASS    PSVersion\n"
-msgstr ""
-
+msgstr "        PASS    PSVersion\n"
 msgid "        PASS    PageRegion\n"
 msgid "        PASS    PageRegion\n"
-msgstr ""
-
+msgstr "        PASS    PageRegion\n"
 msgid "        PASS    PageSize\n"
 msgid "        PASS    PageSize\n"
-msgstr ""
-
+msgstr "        PASS    PageSize\n"
 msgid "        PASS    Product\n"
 msgid "        PASS    Product\n"
-msgstr ""
-
+msgstr "        PASS    Produto\n"
 msgid "        PASS    ShortNickName\n"
 msgid "        PASS    ShortNickName\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"        WARN    \"%s %s\" conflicts with \"%s %s\"\n"
-"                (constraint=\"%s %s %s %s\")\n"
-msgstr ""
-
-#, c-format
+msgstr "        PASS    ShortNickName\n"
+msgid "        WARN    \"%s %s\" conflicts with \"%s %s\"\n                (constraint=\"%s %s %s %s\")\n"
+msgstr "        WARN    \"%s %s\" em conflito com \"%s %s\"\n                (restrição=\"%s %s %s %s\")\n"
 msgid "        WARN    %s has no corresponding options!\n"
 msgid "        WARN    %s has no corresponding options!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"        WARN    %s shares a common prefix with %s\n"
-"                REF: Page 15, section 3.2.\n"
-msgstr ""
-
+msgstr "        WARN    %s não tem opções correspondentes!\n"
+msgid "        WARN    %s shares a common prefix with %s\n                REF: Page 15, section 3.2.\n"
+msgstr "        WARN    %s partilha um prefixo comum com %s\n                REF: Página 15, secção 3.2.\n"
 msgid "        WARN    Default choices conflicting!\n"
 msgid "        WARN    Default choices conflicting!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"        WARN    Duplex option keyword %s should be named Duplex or "
-"JCLDuplex!\n"
-"                REF: Page 122, section 5.17\n"
-msgstr ""
-
-msgid ""
-"        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
-msgstr ""
-
-msgid ""
-"        WARN    LanguageEncoding required by PPD 4.3 spec.\n"
-"                REF: Pages 56-57, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr "        WARN    Escolhas predefinidas em conflito!\n"
+msgid "        WARN    Duplex option keyword %s should be named Duplex or JCLDuplex!\n                REF: Page 122, section 5.17\n"
+msgstr "        WARN    Palavra-chave de opção de frente e verso %s deve ter o nome Duplex ou JCLDuplex!\n                REF: Página 122, secção 5.17\n"
+msgid "        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr "        WARN    Ficheiro contém um misto de fins de linha CR, LF e CR LF!\n"
+msgid "        WARN    LanguageEncoding required by PPD 4.3 spec.\n                REF: Pages 56-57, section 5.3.\n"
+msgstr "        WARN    LanguageEncoding requerido por espec. de PPD 4.3\n                REF: Páginas 56-57, secção 5.3.\n"
 msgid "        WARN    Line %d only contains whitespace!\n"
 msgid "        WARN    Line %d only contains whitespace!\n"
-msgstr ""
-
-msgid ""
-"        WARN    Manufacturer required by PPD 4.3 spec.\n"
-"                REF: Pages 58-59, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr "        WARN    Linha %d só contém espaço em branco!\n"
+msgid "        WARN    Manufacturer required by PPD 4.3 spec.\n                REF: Pages 58-59, section 5.3.\n"
+msgstr "        WARN    Fabricante requerido por espec. de PPD 4.3\n                REF: Páginas 58-59, secção 5.3.\n"
 msgid "        WARN    Missing APDialogExtension file \"%s\"\n"
 msgid "        WARN    Missing APDialogExtension file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "        WARN    Ficheiro APDialogExtension inexistente \"%s\"\n"
 msgid "        WARN    Missing APPrinterIconPath file \"%s\"\n"
 msgid "        WARN    Missing APPrinterIconPath file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "        WARN    Ficheiro APPrinterIconPath inexistente \"%s\"\n"
 msgid "        WARN    Missing cupsICCProfile file \"%s\"\n"
 msgid "        WARN    Missing cupsICCProfile file \"%s\"\n"
-msgstr ""
-
-msgid ""
-"        WARN    Non-Windows PPD files should use lines ending with only LF, "
-"not CR LF!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"        WARN    Obsolete PPD version %.1f!\n"
-"                REF: Page 42, section 5.2.\n"
-msgstr ""
-
-msgid ""
-"        WARN    PCFileName longer than 8.3 in violation of PPD spec.\n"
-"                REF: Pages 61-62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"        WARN    Protocols contains PJL but JCL attributes are not set.\n"
-"                REF: Pages 78-79, section 5.7.\n"
-msgstr ""
-
-msgid ""
-"        WARN    Protocols contains both PJL and BCP; expected TBCP.\n"
-"                REF: Pages 78-79, section 5.7.\n"
-msgstr ""
-
-msgid ""
-"        WARN    ShortNickName required by PPD 4.3 spec.\n"
-"                REF: Pages 64-65, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr "        WARN    Ficheiro cupsICCProfile inexistente \"%s\"\n"
+msgid "        WARN    Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+msgstr "        WARN    Ficheiros PPD não Windows devem utilizar fins de linha com LF, e não CR LF!\n"
+msgid "        WARN    Obsolete PPD version %.1f!\n                REF: Page 42, section 5.2.\n"
+msgstr "        WARN    Versão de PPD obsoleta %.1f!\n                REF: Página 42, secção 5.2"
+msgid "        WARN    PCFileName longer than 8.3 in violation of PPD spec.\n                REF: Pages 61-62, section 5.3.\n"
+msgstr "        WARN    PCFileName superior a 8.3 viola espec. de PPD\n                REF: Páginas 61-62, secção 5.3.\n"
+msgid "        WARN    Protocols contains PJL but JCL attributes are not set.\n                REF: Pages 78-79, section 5.7.\n"
+msgstr "        WARN    Protocolos contêm PJL, mas atributos JCL não estão especificados.\n                REF: Páginas 78-79, secção 5.7.\n"
+msgid "        WARN    Protocols contains both PJL and BCP; expected TBCP.\n                REF: Pages 78-79, section 5.7.\n"
+msgstr "        WARN    Protocolos contêm PJL e BCP; TBCP esperados.\n                REF: Páginas 78-79, secção 5.7.\n"
+msgid "        WARN    ShortNickName required by PPD 4.3 spec.\n                REF: Pages 64-65, section 5.3.\n"
+msgstr "        WARN    ShortNickName requerido por espec. de PPD 4.3\n                REF: Páginas 64-65, secção 5.3.\n"
 msgid "      %s  %s %s does not exist!\n"
 msgid "      %s  %s %s does not exist!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  %s %s não existe!\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
 msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Cadeia de tradução UTF-8 \"%s\" inválida para opção %s!\n"
+msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
+msgstr "      %s  Cadeia de tradução UTF-8 \"%s\" inválida para opção %s, escolha %s!\n"
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
 msgid "      %s  Bad cupsFilter value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Valor cupsFilter inválido \"%s\"!\n"
 msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
 msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Valor cupsPreFilter inválido \"%s\"!\n"
 msgid "      %s  Bad language \"%s\"!\n"
 msgid "      %s  Bad language \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Idioma inválido \"%s\"!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Cadeia de tradução inexistente \"%s\" para opção %s!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s, choice %s!\n"
 msgid "      %s  Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Cadeia de tradução inexistente \"%s\" para opção %s, escolha %s!\n"
 msgid "      %s  Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgid "      %s  Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Escolha inexistente *%s %s em UIConstraint \"*%s %s *%s %s\"!\n"
 msgid "      %s  Missing cupsFilter file \"%s\"\n"
 msgid "      %s  Missing cupsFilter file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Ficheiro cupsFilter inexistente \"%s\"!\n"
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
 msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Ficheiro cupsPreFilter inexistente \"%s\"!\n"
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
 msgid "      %s  Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Opção inexistente %s em UIConstraint \"*%s %s *%s %s\"!\n"
 msgid "      %s  No base translation \"%s\" is included in file!\n"
 msgid "      %s  No base translation \"%s\" is included in file!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  %s must be 1284DeviceID!\n"
-"                REF: Page 72, section 5.5\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  BAD Default%s %s\n"
-"                REF: Page 40, section 4.5.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  BAD DefaultImageableArea %s!\n"
-"                REF: Page 102, section 5.15.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  BAD DefaultPaperDimension %s!\n"
-"                REF: Page 103, section 5.15.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  BAD JobPatchFile attribute in file\n"
-"                REF: Page 24, section 3.4.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  BAD Manufacturer (should be \"HP\")\n"
-"                REF: Page 211, table D.1.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  BAD Manufacturer (should be \"Oki\")\n"
-"                REF: Page 211, table D.1.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n"
-"                REF: Pages 59-60, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  BAD PSVersion - not \"(string) int\".\n"
-"                REF: Pages 62-64, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  BAD Product - not \"(string)\".\n"
-"                REF: Page 62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  BAD ShortNickName - longer than 31 chars.\n"
-"                REF: Pages 64-65, section 5.3.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  Bad %s choice %s!\n"
-"                REF: Page 122, section 5.17\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  Bad %s choice %s!\n"
-"                REF: Page 84, section 5.9\n"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Sem tradução base \"%s\" incluída no ficheiro!\n"
+msgid "      **FAIL**  %s must be 1284DeviceID!\n                REF: Page 72, section 5.5\n"
+msgstr "      **FAIL**  %s deve ser 1284DeviceID!\n                REF: Página 72, secção 5.5\n"
+msgid "      **FAIL**  BAD Default%s %s\n                REF: Page 40, section 4.5.\n"
+msgstr "      **FAIL**  Predefinição%s %s inválida\n                REF: Página 40, secção 4.5\n"
+msgid "      **FAIL**  BAD DefaultImageableArea %s!\n                REF: Page 102, section 5.15.\n"
+msgstr "      **FAIL**  DefaultImageableArea %s inválida!\n                REF: Página 102, secção 5.15\n"
+msgid "      **FAIL**  BAD DefaultPaperDimension %s!\n                REF: Page 103, section 5.15.\n"
+msgstr "      **FAIL**  DefaultPaperDimension %s inválida!\n                REF: Página 103, secção 5.15\n"
+msgid "      **FAIL**  BAD JobPatchFile attribute in file\n                REF: Page 24, section 3.4.\n"
+msgstr "      **FAIL**  Atributo JobPatchFile inválido no ficheiro!\n                REF: Página 24, secção 3.4\n"
+msgid "      **FAIL**  BAD Manufacturer (should be \"HP\")\n                REF: Page 211, table D.1.\n"
+msgstr "      **FAIL**  Fabricante inválido (deve ser \"HP\")\n                REF: Página 211, tabela D.1.\n"
+msgid "      **FAIL**  BAD Manufacturer (should be \"Oki\")\n                REF: Page 211, table D.1.\n"
+msgstr "      **FAIL**  Fabricante inválido (deve ser \"Oki\")\n                REF: Página 211, tabela D.1.\n"
+msgid "      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n                REF: Pages 59-60, section 5.3.\n"
+msgstr "      **FAIL**  ModelName inválido - \"%c\" não permitido na cadeia.\n                REF: Páginas 59-60, secção 5.3\n"
+msgid "      **FAIL**  BAD PSVersion - not \"(string) int\".\n                REF: Pages 62-64, section 5.3.\n"
+msgstr "      **FAIL**  PSVersion inválida - não \"(cadeia) int\".\n                REF: Páginas 62-64, secção 5.3\n"
+msgid "      **FAIL**  BAD Product - not \"(string)\".\n                REF: Page 62, section 5.3.\n"
+msgstr "      **FAIL**  Produto inválido - não \"(cadeia)\".\n                REF: Página 62, secção 5.3\n"
+msgid "      **FAIL**  BAD ShortNickName - longer than 31 chars.\n                REF: Pages 64-65, section 5.3.\n"
+msgstr "      **FAIL**  ShortNickName inválido - superior a 31 car.\n                REF: Páginas 64-65, secção 5.3\n"
+msgid "      **FAIL**  Bad %s choice %s!\n                REF: Page 122, section 5.17\n"
+msgstr "      **FAIL**  Escolha %s inválida %s!\n                REF: Página 122, secção 5.17\n"
+msgid "      **FAIL**  Bad %s choice %s!\n                REF: Page 84, section 5.9\n"
+msgstr "      **FAIL**  Escolha %s inválida %s!\n                REF: Página 84, secção 5.9\n"
 msgid "      **FAIL**  Bad LanguageEncoding %s - must be ISOLatin1!\n"
 msgid "      **FAIL**  Bad LanguageEncoding %s - must be ISOLatin1!\n"
-msgstr ""
-
-#, c-format
+msgstr "      **FAIL**  LanguageEncoding %s inválida - deve ser ISOLatin1!\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
-msgstr ""
-
-#, c-format
+msgstr "      **FAIL**  LanguageVersion %s inválida - deve ser Inglês!\n"
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  Default translation string for option %s choice %s contains "
-"8-bit characters!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  Default translation string for option %s contains 8-bit "
-"characters!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  REQUIRED %s does not define choice None!\n"
-"                REF: Page 122, section 5.17\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  REQUIRED Default%s\n"
-"                REF: Page 40, section 4.5.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED DefaultImageableArea\n"
-"                REF: Page 102, section 5.15.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED DefaultPaperDimension\n"
-"                REF: Page 103, section 5.15.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED FileVersion\n"
-"                REF: Page 56, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED FormatVersion\n"
-"                REF: Page 56, section 5.3.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  REQUIRED ImageableArea for PageSize %s\n"
-"                REF: Page 41, section 5.\n"
-"                REF: Page 102, section 5.15.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED LanguageEncoding\n"
-"                REF: Pages 56-57, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED LanguageVersion\n"
-"                REF: Pages 57-58, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED Manufacturer\n"
-"                REF: Pages 58-59, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED ModelName\n"
-"                REF: Pages 59-60, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED NickName\n"
-"                REF: Page 60, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED PCFileName\n"
-"                REF: Pages 61-62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED PSVersion\n"
-"                REF: Pages 62-64, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED PageRegion\n"
-"                REF: Page 100, section 5.14.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED PageSize\n"
-"                REF: Page 41, section 5.\n"
-"                REF: Page 99, section 5.14.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED PageSize\n"
-"                REF: Pages 99-100, section 5.14.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"      **FAIL**  REQUIRED PaperDimension for PageSize %s\n"
-"                REF: Page 41, section 5.\n"
-"                REF: Page 103, section 5.15.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED Product\n"
-"                REF: Page 62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-"      **FAIL**  REQUIRED ShortNickName\n"
-"                REF: Page 64-65, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr "      **FAIL**  Impossível interpretar código de opção predefinida: %s\n"
+msgid "      **FAIL**  Default translation string for option %s choice %s contains 8-bit characters!\n"
+msgstr "      **FAIL**  Cadeia de tradução predefinida para opção %s escolha %s contém caracteres de 8 bits!\n"
+msgid "      **FAIL**  Default translation string for option %s contains 8-bit characters!\n"
+msgstr "      **FAIL**  Cadeia de tradução predefinida para opção %s contém caracteres de 8 bits!\n"
+msgid "      **FAIL**  REQUIRED %s does not define choice None!\n                REF: Page 122, section 5.17\n"
+msgstr "      **FAIL**  %s requerido não define escolha Sem!\n                REF: Página 122, secção 5.17\n"
+msgid "      **FAIL**  REQUIRED Default%s\n                REF: Page 40, section 4.5.\n"
+msgstr "      **FAIL**  Predefinição%s requerida\n                REF: Página 40, secção 4.5\n"
+msgid "      **FAIL**  REQUIRED DefaultImageableArea\n                REF: Page 102, section 5.15.\n"
+msgstr "      **FAIL**  DefaultImageableArea requerida\n                REF: Página 102, secção 5.15\n"
+msgid "      **FAIL**  REQUIRED DefaultPaperDimension\n                REF: Page 103, section 5.15.\n"
+msgstr "      **FAIL**  DefaultPaperDimension requerida\n                REF: Página 103, secção 5.15\n"
+msgid "      **FAIL**  REQUIRED FileVersion\n                REF: Page 56, section 5.3.\n"
+msgstr "      **FAIL**  FileVersion requerida\n                REF: Página 56, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED FormatVersion\n                REF: Page 56, section 5.3.\n"
+msgstr "      **FAIL**  FormatVersion requerida\n                REF: Página 56, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED ImageableArea for PageSize %s\n                REF: Page 41, section 5.\n                REF: Page 102, section 5.15.\n"
+msgstr "      **FAIL**  ImageableArea requerida para PageSize %s\n                REF: Página 41, secção 5.\n                REF: Página 102, secção 5.15.\n"
+msgid "      **FAIL**  REQUIRED LanguageEncoding\n                REF: Pages 56-57, section 5.3.\n"
+msgstr "      **FAIL**  LanguageEncoding requerida\n                REF: Páginas 56-57, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED LanguageVersion\n                REF: Pages 57-58, section 5.3.\n"
+msgstr "      **FAIL**  LanguageVersion requerida\n                REF: Páginas 57-58, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED Manufacturer\n                REF: Pages 58-59, section 5.3.\n"
+msgstr "      **FAIL**  Fabricante requerido\n                REF: Páginas 58-59, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED ModelName\n                REF: Pages 59-60, section 5.3.\n"
+msgstr "      **FAIL**  ModelName requerido\n                REF: Páginas 59-60, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED NickName\n                REF: Page 60, section 5.3.\n"
+msgstr "      **FAIL**  NickName requerido\n                REF: Página 60, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED PCFileName\n                REF: Pages 61-62, section 5.3.\n"
+msgstr "      **FAIL**  PCFileName requerido\n                REF: Páginas 61-62, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED PSVersion\n                REF: Pages 62-64, section 5.3.\n"
+msgstr "      **FAIL**  PSVersion requerida\n                REF: Páginas 62-64, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED PageRegion\n                REF: Page 100, section 5.14.\n"
+msgstr "      **FAIL**  PageRegion requerida\n                REF: Página 100, secção 5.14\n"
+msgid "      **FAIL**  REQUIRED PageSize\n                REF: Page 41, section 5.\n                REF: Page 99, section 5.14.\n"
+msgstr "      **FAIL**  PageSize requerido\n                REF: Página 41, secção 5.\n                REF: Página 99, secção 5.14.\n"
+msgid "      **FAIL**  REQUIRED PageSize\n                REF: Pages 99-100, section 5.14.\n"
+msgstr "      **FAIL**  PageSize requerido\n                REF: Páginas 99-100, secção 5.14\n"
+msgid "      **FAIL**  REQUIRED PaperDimension for PageSize %s\n                REF: Page 41, section 5.\n                REF: Page 103, section 5.15.\n"
+msgstr "      **FAIL**  PaperDimension requerida para PageSize %s\n                REF: Página 41, secção 5.\n                REF: Página 103, secção 5.15.\n"
+msgid "      **FAIL**  REQUIRED Product\n                REF: Page 62, section 5.3.\n"
+msgstr "      **FAIL**  Produto requerido\n                REF: Página 62, secção 5.3\n"
+msgid "      **FAIL**  REQUIRED ShortNickName\n                REF: Page 64-65, section 5.3.\n"
+msgstr "      **FAIL**  ShortNickName requerido\n                REF: Páginas 64-65, secção 5.3\n"
 msgid "    %d ERRORS FOUND\n"
 msgid "    %d ERRORS FOUND\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Bad %%%%BoundingBox: on line %d!\n"
-"        REF: Page 39, %%%%BoundingBox:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Bad %%%%Page: on line %d!\n"
-"        REF: Page 53, %%%%Page:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Bad %%%%Pages: on line %d!\n"
-"        REF: Page 43, %%%%Pages:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Line %d is longer than 255 characters (%d)!\n"
-"        REF: Page 25, Line Length\n"
-msgstr ""
-
-msgid ""
-"    Missing %!PS-Adobe-3.0 on first line!\n"
-"        REF: Page 17, 3.1 Conforming Documents\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Missing %%EndComments comment!\n"
-"        REF: Page 41, %%EndComments\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Missing or bad %%BoundingBox: comment!\n"
-"        REF: Page 39, %%BoundingBox:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Missing or bad %%Page: comments!\n"
-"        REF: Page 53, %%Page:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"    Missing or bad %%Pages: comment!\n"
-"        REF: Page 43, %%Pages:\n"
-msgstr ""
-
+msgstr "    %d ERROS ENCONTRADOS\n"
+msgid "    Bad %%%%BoundingBox: on line %d!\n        REF: Page 39, %%%%BoundingBox:\n"
+msgstr "    %%%%BoundingBox: inválida na linha %d!\n        REF: Página 39, %%%%BoundingBox:\n"
+msgid "    Bad %%%%Page: on line %d!\n        REF: Page 53, %%%%Page:\n"
+msgstr "    %%%%Page: inválida na linha %d!\n        REF: Página 53, %%%%Page:\n"
+msgid "    Bad %%%%Pages: on line %d!\n        REF: Page 43, %%%%Pages:\n"
+msgstr "    %%%%Pages: inválidas na linha %d!\n        REF: Página 43, %%%%Pages:\n"
+msgid "    Line %d is longer than 255 characters (%d)!\n        REF: Page 25, Line Length\n"
+msgstr "    Linha %d tem mais de 255 caracteres (%d)!\n        REF: Página 25, Comprimento da Linha\n"
+msgid "    Missing %!PS-Adobe-3.0 on first line!\n        REF: Page 17, 3.1 Conforming Documents\n"
+msgstr "    %!PS-Adobe-3.0 inexistente na primeira linha!\n        REF: Página 17, 3.1 Documentos de Conformidade\n"
+msgid "    Missing %%EndComments comment!\n        REF: Page 41, %%EndComments\n"
+msgstr "    Comentário %%EndComments inexistente!\n        REF: Página 41, %%EndComments\n"
+msgid "    Missing or bad %%BoundingBox: comment!\n        REF: Page 39, %%BoundingBox:\n"
+msgstr "    Comentário %%BoundingBox: inexistente ou inválido!\n        REF: Página 39, %%BoundingBox:\n"
+msgid "    Missing or bad %%Page: comments!\n        REF: Page 53, %%Page:\n"
+msgstr "    Comentários %%Page: inexistentes ou inválidos!\n        REF: Página 53, %%Page:\n"
+msgid "    Missing or bad %%Pages: comment!\n        REF: Page 43, %%Pages:\n"
+msgstr "    Comentário %%Pages: inexistente ou inválido!\n        REF: Página 43, %%Pages:\n"
 msgid "    NO ERRORS FOUND\n"
 msgid "    NO ERRORS FOUND\n"
-msgstr ""
-
-#, c-format
+msgstr "    SEM ERROS\n"
 msgid "    Saw %d lines that exceeded 255 characters!\n"
 msgid "    Saw %d lines that exceeded 255 characters!\n"
-msgstr ""
-
-#, c-format
+msgstr "    Detectadas %d linhas que excedem 255 caracteres!\n"
 msgid "    Too many %%BeginDocument comments!\n"
 msgid "    Too many %%BeginDocument comments!\n"
-msgstr ""
-
-#, c-format
+msgstr "    Demasiados comentários %%BeginDocument!\n"
 msgid "    Too many %%EndDocument comments!\n"
 msgid "    Too many %%EndDocument comments!\n"
-msgstr ""
-
+msgstr "    Demasiados comentários %%EndDocument!\n"
 msgid "    Warning: file contains binary data!\n"
 msgid "    Warning: file contains binary data!\n"
-msgstr ""
-
-#, c-format
+msgstr "    Aviso: ficheiro contém dados binários!\n"
 msgid "    Warning: no %%EndComments comment in file!\n"
 msgid "    Warning: no %%EndComments comment in file!\n"
-msgstr ""
-
-#, c-format
+msgstr "    Aviso: sem comentário %%EndComments no ficheiro!\n"
 msgid "    Warning: obsolete DSC version %.1f in file!\n"
 msgid "    Warning: obsolete DSC version %.1f in file!\n"
-msgstr ""
-
+msgstr "    Aviso: versão obsoleta de DSC %.1f no ficheiro!\n"
 msgid " FAIL\n"
 msgid " FAIL\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" FAIL\n"
-"      **FAIL**  Unable to open PPD file - %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" FAIL\n"
-"      **FAIL**  Unable to open PPD file - %s on line %d.\n"
-msgstr ""
-
+msgstr " FAIL\n"
+msgid " FAIL\n      **FAIL**  Unable to open PPD file - %s\n"
+msgstr " FAIL\n      **FAIL**  Impossível abrir ficheiro PPD - %s\n"
+msgid " FAIL\n      **FAIL**  Unable to open PPD file - %s on line %d.\n"
+msgstr " FAIL\n      **FAIL**  Impossível abrir ficheiro PPD - %s na linha %d.\n"
 msgid " PASS\n"
 msgid " PASS\n"
-msgstr ""
-
-#, c-format
+msgstr " PASS\n"
 msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
 msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
-msgstr ""
-
-#, c-format
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
 msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
 msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
-msgstr ""
-
-#, c-format
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
 msgid "%s accepting requests since %s\n"
 msgid "%s accepting requests since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s aceita pedidos desde %s\n"
 msgid "%s cannot be changed."
 msgid "%s cannot be changed."
-msgstr ""
-
-#, c-format
+msgstr "Impossível alterar %s."
 msgid "%s is not implemented by the CUPS version of lpc.\n"
 msgid "%s is not implemented by the CUPS version of lpc.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s não é implementado pela versão CUPS de lpc.\n"
 msgid "%s is not ready\n"
 msgid "%s is not ready\n"
-msgstr ""
-
-#, c-format
+msgstr "%s não está preparada\n"
 msgid "%s is ready\n"
 msgid "%s is ready\n"
-msgstr ""
-
-#, c-format
+msgstr "%s está preparada\n"
 msgid "%s is ready and printing\n"
 msgid "%s is ready and printing\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s not accepting requests since %s -\n"
-"\t%s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s está preparada e a imprimir\n"
+msgid "%s not accepting requests since %s -\n\t%s\n"
+msgstr "%s não aceita pedidos desde %s-\n\t%s\n"
 msgid "%s not supported!"
 msgid "%s not supported!"
-msgstr ""
-
-#, c-format
+msgstr "%s não suportado!"
 msgid "%s/%s accepting requests since %s\n"
 msgid "%s/%s accepting requests since %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s/%s not accepting requests since %s -\n"
-"\t%s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s/%s aceita pedidos desde %s\n"
+msgid "%s/%s not accepting requests since %s -\n\t%s\n"
+msgstr "%s/%s não aceita pedidos desde %s-\n\t%s\n"
 msgid "%s: %-33.33s [job %d localhost]\n"
 msgid "%s: %-33.33s [job %d localhost]\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: %-33.33s [trabalho %d localhost]\n"
 msgid "%s: %s failed: %s\n"
 msgid "%s: %s failed: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: %s falhou: %s\n"
 msgid "%s: Don't know what to do!\n"
 msgid "%s: Don't know what to do!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Não sei que fazer!\n"
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erro - nomes de variáveis de ambiente %s inexistentes no destino \"%s\"!\n"
 msgid "%s: Error - bad job ID!\n"
 msgid "%s: Error - bad job ID!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - ID de trabalho inválido!\n"
 msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
 msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível imprimir ficheiros e alterar trabalhos em simultâneo!\n"
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr "%s: Erro - impossível imprimir a partir de stdin se fornecidos ficheiros ou ID do trabalho!\n"
 msgid "%s: Error - expected character set after '-S' option!\n"
 msgid "%s: Error - expected character set after '-S' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - conjunto de caracteres esperado após opção '-S'!\n"
 msgid "%s: Error - expected content type after '-T' option!\n"
 msgid "%s: Error - expected content type after '-T' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - tipo de conteúdo esperado após opção '-T'!\n"
 msgid "%s: Error - expected copies after '-n' option!\n"
 msgid "%s: Error - expected copies after '-n' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - cópias esperadas após opção '-n'!\n"
 msgid "%s: Error - expected copy count after '-#' option!\n"
 msgid "%s: Error - expected copy count after '-#' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - contagem de cópias esperadas após opção '-#'!\n"
 msgid "%s: Error - expected destination after '-P' option!\n"
 msgid "%s: Error - expected destination after '-P' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-P'!\n"
 msgid "%s: Error - expected destination after '-b' option!\n"
 msgid "%s: Error - expected destination after '-b' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-b'!\n"
 msgid "%s: Error - expected destination after '-d' option!\n"
 msgid "%s: Error - expected destination after '-d' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-d'!\n"
 msgid "%s: Error - expected form after '-f' option!\n"
 msgid "%s: Error - expected form after '-f' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - formato esperado após opção '-f'!\n"
 msgid "%s: Error - expected hold name after '-H' option!\n"
 msgid "%s: Error - expected hold name after '-H' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome para reter esperado após opção '-H'!\n"
 msgid "%s: Error - expected hostname after '-H' option!\n"
 msgid "%s: Error - expected hostname after '-H' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de host esperado após opção '-H'!\n"
 msgid "%s: Error - expected hostname after '-h' option!\n"
 msgid "%s: Error - expected hostname after '-h' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de host esperado após opção '-h'!\n"
 msgid "%s: Error - expected mode list after '-y' option!\n"
 msgid "%s: Error - expected mode list after '-y' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - lista de modo esperada após opção '-y'!\n"
 msgid "%s: Error - expected name after '-%c' option!\n"
 msgid "%s: Error - expected name after '-%c' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome esperado após opção  '-%c'!\n"
 msgid "%s: Error - expected option string after '-o' option!\n"
 msgid "%s: Error - expected option string after '-o' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - cadeia de opção esperada após opção '-o'!\n"
 msgid "%s: Error - expected page list after '-P' option!\n"
 msgid "%s: Error - expected page list after '-P' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - lista de página esperada após opção '-P'!\n"
 msgid "%s: Error - expected priority after '-%c' option!\n"
 msgid "%s: Error - expected priority after '-%c' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - prioridade esperada após opção '-%c'!\n"
 msgid "%s: Error - expected reason text after '-r' option!\n"
 msgid "%s: Error - expected reason text after '-r' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - texto de motivo esperado após opção '-r'!\n"
 msgid "%s: Error - expected title after '-t' option!\n"
 msgid "%s: Error - expected title after '-t' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - título esperado após opção '-t'!\n"
 msgid "%s: Error - expected username after '-U' option!\n"
 msgid "%s: Error - expected username after '-U' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de utilizador esperado após opção '-U'!\n"
 msgid "%s: Error - expected username after '-u' option!\n"
 msgid "%s: Error - expected username after '-u' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de utilizador esperado após opção '-u'!\n"
 msgid "%s: Error - expected value after '-%c' option!\n"
 msgid "%s: Error - expected value after '-%c' option!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
-"option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - valor esperado após opção  '-%c'!\n"
+msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
+msgstr "%s: Erro - necessário \"concluído\", \"não concluído\" ou \"tudo\" após opção '-W'!\n"
 msgid "%s: Error - no default destination available.\n"
 msgid "%s: Error - no default destination available.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - sem destino predefinido disponível.\n"
 msgid "%s: Error - priority must be between 1 and 100.\n"
 msgid "%s: Error - priority must be between 1 and 100.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - prioridade deve ser entre 1 e 100.\n"
 msgid "%s: Error - scheduler not responding!\n"
 msgid "%s: Error - scheduler not responding!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - programador não responde!\n"
 msgid "%s: Error - stdin is empty, so no job has been sent.\n"
 msgid "%s: Error - stdin is empty, so no job has been sent.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - stdin está vazio, por isso nenhum trabalho foi enviado.\n"
 msgid "%s: Error - too many files - \"%s\"\n"
 msgid "%s: Error - too many files - \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - demasiados ficheiros - \"%s\"\n"
 msgid "%s: Error - unable to access \"%s\" - %s\n"
 msgid "%s: Error - unable to access \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível aceder a \"%s\" - %s\n"
 msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
 msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível criar ficheiro temporário \"%s\" - %s\n"
 msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
 msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível escrever no ficheiro temporário \"%s\" - %s\n"
 msgid "%s: Error - unknown destination \"%s\"!\n"
 msgid "%s: Error - unknown destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino desconhecido \"%s\"!\n"
 msgid "%s: Error - unknown destination \"%s/%s\"!\n"
 msgid "%s: Error - unknown destination \"%s/%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino desconhecido \"%s/%s\"!\n"
 msgid "%s: Error - unknown option '%c'!\n"
 msgid "%s: Error - unknown option '%c'!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - opção desconhecida '%c'!\n"
 msgid "%s: Expected job ID after '-i' option!\n"
 msgid "%s: Expected job ID after '-i' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: ID de trabalho esperado após opção '-i'!\n"
 msgid "%s: Invalid destination name in list \"%s\"!\n"
 msgid "%s: Invalid destination name in list \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Nome de destino inválido na lista \"%s\"!\n"
 msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
 msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: No filter to convert from %s/%s to %s/%s!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Necessário ID do trabalho ('-i jobid') antes de '-H reiniciar'!\n"
 msgid "%s: Operation failed: %s\n"
 msgid "%s: Operation failed: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Operação falhou: %s\n"
 msgid "%s: Sorry, no encryption support compiled in!\n"
 msgid "%s: Sorry, no encryption support compiled in!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Sem suporte de encriptação compilado!\n"
 msgid "%s: Unable to connect to server\n"
 msgid "%s: Unable to connect to server\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Impossível ligar ao servidor\n"
 msgid "%s: Unable to connect to server: %s\n"
 msgid "%s: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Impossível ligar ao servidor: %s\n"
 msgid "%s: Unable to contact server!\n"
 msgid "%s: Unable to contact server!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unable to determine MIME type of \"%s\"!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unable to read MIME database from \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Impossível contactar servidor!\n"
 msgid "%s: Unknown destination \"%s\"!\n"
 msgid "%s: Unknown destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unknown destination MIME type %s/%s!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Destino desconhecido \"%s\"!\n"
 msgid "%s: Unknown option '%c'!\n"
 msgid "%s: Unknown option '%c'!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unknown source MIME type %s/%s!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Warning - '%c' format modifier not supported - output may not be "
-"correct!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Opção desconhecida '%c'!\n"
+msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "%s: Aviso - modificador de formato '%c' não suportado - saída pode ser incorrecta!\n"
 msgid "%s: Warning - character set option ignored!\n"
 msgid "%s: Warning - character set option ignored!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de conjunto de caracteres ignorada!\n"
 msgid "%s: Warning - content type option ignored!\n"
 msgid "%s: Warning - content type option ignored!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de tipo de conteúdo ignorada!\n"
 msgid "%s: Warning - form option ignored!\n"
 msgid "%s: Warning - form option ignored!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de formato ignorada!\n"
 msgid "%s: Warning - mode option ignored!\n"
 msgid "%s: Warning - mode option ignored!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de modo ignorada!\n"
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erro - nomes de variáveis de ambiente %s inexistentes no destino \"%s\"!\n"
 msgid "%s: error - expected option=value after '-o' option!\n"
 msgid "%s: error - expected option=value after '-o' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - opção=valor esperada após opção '-o'!\n"
 msgid "%s: error - no default destination available.\n"
 msgid "%s: error - no default destination available.\n"
-msgstr ""
-
+msgstr "%s: Erro - sem destino predefinido disponível.\n"
 msgid "?Invalid help command unknown\n"
 msgid "?Invalid help command unknown\n"
-msgstr ""
-
+msgstr "?Comando de ajuda inválido desconhecido\n"
 msgid "A Samba password is required to export printer drivers!"
 msgid "A Samba password is required to export printer drivers!"
-msgstr ""
-
+msgstr "Palavra-passe Samba requerida para exportar recursos de impressora!"
 msgid "A Samba username is required to export printer drivers!"
 msgid "A Samba username is required to export printer drivers!"
-msgstr ""
-
-#, c-format
+msgstr "Nome de utilizador Samba requerido para exportar recursos de impressora!"
 msgid "A class named \"%s\" already exists!"
 msgid "A class named \"%s\" already exists!"
-msgstr ""
-
-#, c-format
+msgstr "Uma classe com o nome \"%s\" já existe!"
 msgid "A printer named \"%s\" already exists!"
 msgid "A printer named \"%s\" already exists!"
-msgstr ""
-
+msgstr "Uma impressora com o nome \"%s\" já existe!"
 msgid "Accept Jobs"
 msgid "Accept Jobs"
-msgstr ""
-
+msgstr "Aceitar trabalhos"
 msgid "Add Class"
 msgid "Add Class"
-msgstr ""
-
+msgstr "Adicionar classe"
 msgid "Add Printer"
 msgid "Add Printer"
-msgstr ""
-
+msgstr "Adicionar impressora"
 msgid "Add RSS Subscription"
 msgid "Add RSS Subscription"
-msgstr ""
-
+msgstr "Adicionar subscrição RSS"
 msgid "Administration"
 msgid "Administration"
-msgstr ""
-
-#, c-format
+msgstr "Administração"
 msgid "Attempt to set %s printer-state to bad value %d!"
 msgid "Attempt to set %s printer-state to bad value %d!"
-msgstr ""
-
-#, c-format
+msgstr "Tentativa de especificar %s printer-state para valor inválido %d!"
 msgid "Attribute groups are out of order (%x < %x)!"
 msgid "Attribute groups are out of order (%x < %x)!"
-msgstr ""
-
+msgstr "Grupos de atributos desordenados (%x < %x)!"
 msgid "Bad OpenGroup"
 msgid "Bad OpenGroup"
-msgstr ""
-
+msgstr "OpenGroup inválido"
 msgid "Bad OpenUI/JCLOpenUI"
 msgid "Bad OpenUI/JCLOpenUI"
-msgstr ""
-
+msgstr "OpenUI/JCLOpenUI inválidos"
 msgid "Bad OrderDependency"
 msgid "Bad OrderDependency"
-msgstr ""
-
+msgstr "OrderDependency inválida"
 msgid "Bad UIConstraints"
 msgid "Bad UIConstraints"
-msgstr ""
-
-#, c-format
+msgstr "UIConstraints inválidas"
 msgid "Bad copies value %d."
 msgid "Bad copies value %d."
-msgstr ""
-
+msgstr "Valor de cópias inválido %d."
 msgid "Bad custom parameter"
 msgid "Bad custom parameter"
-msgstr ""
-
-#, c-format
+msgstr "Parâmetro personalizado inválido"
 msgid "Bad device-uri \"%s\"!"
 msgid "Bad device-uri \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Device-uri \"%s\" inválido!"
 msgid "Bad document-format \"%s\"!"
 msgid "Bad document-format \"%s\"!"
-msgstr ""
-
+msgstr "Document-format \"%s\" inválido!"
 msgid "Bad job-priority value!"
 msgid "Bad job-priority value!"
-msgstr ""
-
+msgstr "Valor job-priority inválido!"
 msgid "Bad job-state value!"
 msgid "Bad job-state value!"
-msgstr ""
-
-#, c-format
+msgstr "Valor job-state inválido!"
 msgid "Bad job-uri attribute \"%s\"!"
 msgid "Bad job-uri attribute \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Atributo job-uri \"%s\" inválido!"
 msgid "Bad notify-pull-method \"%s\"!"
 msgid "Bad notify-pull-method \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Notify-pull-method \"%s\" inválido!"
 msgid "Bad notify-recipient-uri URI \"%s\"!"
 msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Notify-recipient-uri URI \"%s\" inválido!"
 msgid "Bad number-up value %d."
 msgid "Bad number-up value %d."
-msgstr ""
-
-#, c-format
+msgstr "Valor number-up inválido %d."
 msgid "Bad option + choice on line %d!"
 msgid "Bad option + choice on line %d!"
-msgstr ""
-
-#, c-format
+msgstr "Opção + escolha inválidas na linha %d!"
 msgid "Bad page-ranges values %d-%d."
 msgid "Bad page-ranges values %d-%d."
-msgstr ""
-
-#, c-format
+msgstr "Valores page-ranges inválidos %d-%d."
 msgid "Bad port-monitor \"%s\"!"
 msgid "Bad port-monitor \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Port-monitor \"%s\" inválido!"
 msgid "Bad printer-state value %d!"
 msgid "Bad printer-state value %d!"
-msgstr ""
-
-#, c-format
+msgstr "Valor printer-state inválido %d!"
 msgid "Bad request version number %d.%d!"
 msgid "Bad request version number %d.%d!"
-msgstr ""
-
+msgstr "Número de versão pedido inválido %d.%d!"
 msgid "Bad subscription ID!"
 msgid "Bad subscription ID!"
-msgstr ""
-
+msgstr "ID de subscrição inválido!"
 msgid "Banners"
 msgid "Banners"
-msgstr ""
-
+msgstr "Faixas publicitárias"
 msgid "Cancel RSS Subscription"
 msgid "Cancel RSS Subscription"
-msgstr ""
-
+msgstr "Cancelar subscrição RSS"
 msgid "Change Settings"
 msgid "Change Settings"
-msgstr ""
-
-#, c-format
+msgstr "Alterar especificações"
 msgid "Character set \"%s\" not supported!"
 msgid "Character set \"%s\" not supported!"
-msgstr ""
-
+msgstr "Conjunto de caracteres \"%s\" não suportado!"
 msgid "Classes"
 msgid "Classes"
-msgstr ""
-
-msgid ""
-"Commands may be abbreviated.  Commands are:\n"
-"\n"
-"exit    help    quit    status  ?\n"
-msgstr ""
-
-#, c-format
+msgstr "Classes"
+msgid "Commands may be abbreviated.  Commands are:\n\nexit    help    quit    status  ?\n"
+msgstr "É possível abreviar comandos. Comandos são:\n\nsair    ajuda    sair    estado  ?\n"
 msgid "Could not scan type \"%s\"!"
 msgid "Could not scan type \"%s\"!"
-msgstr ""
-
+msgstr "Impossível procurar tipo \"%s\"!"
 msgid "Cover open."
 msgid "Cover open."
-msgstr ""
-
+msgstr "Tampa aberta."
 msgid "Custom"
 msgid "Custom"
-msgstr ""
-
+msgstr "Personalizar"
 msgid "Delete Class"
 msgid "Delete Class"
-msgstr ""
-
+msgstr "Apagar classe"
 msgid "Delete Printer"
 msgid "Delete Printer"
-msgstr ""
-
-#, c-format
+msgstr "Apagar impressora"
 msgid "Destination \"%s\" is not accepting jobs."
 msgid "Destination \"%s\" is not accepting jobs."
-msgstr ""
-
+msgstr "Destino \"%s\" não está a aceitar trabalhos."
 msgid "Developer almost empty."
 msgid "Developer almost empty."
-msgstr ""
-
+msgstr "Programador quase vazio."
 msgid "Developer empty!"
 msgid "Developer empty!"
-msgstr ""
-
-#, c-format
-msgid ""
-"Device: uri = %s\n"
-"        class = %s\n"
-"        info = %s\n"
-"        make-and-model = %s\n"
-"        device-id = %s\n"
-msgstr ""
-
+msgstr "Programador vazio!"
+msgid "Device: uri = %s\n        class = %s\n        info = %s\n        make-and-model = %s\n        device-id = %s\n"
+msgstr "Periférico: uri = %s\n        class = %s\n        info = %s\n        make-and-model = %s\n        device-id = %s\n"
 msgid "Door open."
 msgid "Door open."
-msgstr ""
-
-#, c-format
+msgstr "Porta aberta."
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
 msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "EMERG: Impossível alocar memória para info de página: %s\n"
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
 msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "EMERG: Impossível alocar memória para matriz de páginas: %s\n"
 msgid "ERROR: %ld: (canceled:%ld)\n"
 msgid "ERROR: %ld: (canceled:%ld)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %ld: (cancelado:%ld)\n"
 msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
 msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comentário %%BoundingBox: inválido!\n"
 msgid "ERROR: Bad %%IncludeFeature: comment!\n"
 msgid "ERROR: Bad %%IncludeFeature: comment!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comentário %%IncludeFeature: inválido!\n"
 msgid "ERROR: Bad %%Page: comment in file!\n"
 msgid "ERROR: Bad %%Page: comment in file!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Comentário %%Page: inválido no ficheiro!\n"
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Comentário %%PageBoundingBox: inválido no ficheiro!\n"
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ficheiro de periférico SCSI inválido \"%s\"!\n"
 msgid "ERROR: Bad charset file %s\n"
 msgid "ERROR: Bad charset file %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ficheiro charset inválido %s\n"
 msgid "ERROR: Bad charset type %s\n"
 msgid "ERROR: Bad charset type %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Tipo charset inválido %s\n"
 msgid "ERROR: Bad font description line: %s\n"
 msgid "ERROR: Bad font description line: %s\n"
-msgstr ""
-
+msgstr "ERROR: Linha de descrição de tipo de letra inválida: %s\n"
 msgid "ERROR: Bad page setup!\n"
 msgid "ERROR: Bad page setup!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Configuração de página inválida!\n"
 msgid "ERROR: Bad text direction %s\n"
 msgid "ERROR: Bad text direction %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Orientação de texto inválida %s\n"
 msgid "ERROR: Bad text width %s\n"
 msgid "ERROR: Bad text width %s\n"
-msgstr ""
-
+msgstr "ERROR: Largura de texto inválida %s\n"
 msgid "ERROR: Destination printer does not exist!\n"
 msgid "ERROR: Destination printer does not exist!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impressora de destino não existe!\n"
 msgid "ERROR: Duplicate %%BoundingBox: comment seen!\n"
 msgid "ERROR: Duplicate %%BoundingBox: comment seen!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comentário %%BoundingBox: em duplicado!\n"
 msgid "ERROR: Duplicate %%Pages: comment seen!\n"
 msgid "ERROR: Duplicate %%Pages: comment seen!\n"
-msgstr ""
-
+msgstr "ERROR: Detectado comentário %%Pages: em duplicado!\n"
 msgid "ERROR: Empty print file!\n"
 msgid "ERROR: Empty print file!\n"
-msgstr ""
-
+msgstr "ERROR: Ficheiro de impressão vazio!\n"
 msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
 msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comando HP-GL/2 inválido; impossível imprimir ficheiro!\n"
 msgid "ERROR: Missing %%EndProlog!\n"
 msgid "ERROR: Missing %%EndProlog!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %%EndProlog inexistente!\n"
 msgid "ERROR: Missing %%EndSetup!\n"
 msgid "ERROR: Missing %%EndSetup!\n"
-msgstr ""
-
-msgid ""
-"ERROR: Missing device URI on command-line and no DEVICE_URI environment "
-"variable!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %%EndSetup inexistente!\n"
+msgid "ERROR: Missing device URI on command-line and no DEVICE_URI environment variable!\n"
+msgstr "ERROR: URI de periférico inexistente em command-line e sem variável de ambiente DEVICE_URI!\n"
 msgid "ERROR: No %%BoundingBox: comment in header!\n"
 msgid "ERROR: No %%BoundingBox: comment in header!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Sem comentário %%BoundingBox: no cabeçalho!\n"
 msgid "ERROR: No %%Pages: comment in header!\n"
 msgid "ERROR: No %%Pages: comment in header!\n"
-msgstr ""
-
-msgid ""
-"ERROR: No device URI found in argv[0] or in DEVICE_URI environment "
-"variable!\n"
-msgstr ""
-
+msgstr "ERROR: Sem comentário %%Pages: no cabeçalho!\n"
+msgid "ERROR: No device URI found in argv[0] or in DEVICE_URI environment variable!\n"
+msgstr "ERROR: Sem URI de periférico em argv[0] ou na variável de ambiente DEVICE_URI!\n"
 msgid "ERROR: No pages found!\n"
 msgid "ERROR: No pages found!\n"
-msgstr ""
-
+msgstr "ERROR: Sem páginas!\n"
 msgid "ERROR: Out of paper!\n"
 msgid "ERROR: Out of paper!\n"
-msgstr ""
-
+msgstr "ERROR: Sem papel!\n"
 msgid "ERROR: PRINTER environment variable not defined!\n"
 msgid "ERROR: PRINTER environment variable not defined!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Variável de ambiente PRINTER não definida!\n"
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgid "ERROR: Print file was not accepted (%s)!\n"
-msgstr ""
-
+msgstr "ERROR: Ficheiro de impressão não foi aceite (%s)!\n"
 msgid "ERROR: Printer not responding!\n"
 msgid "ERROR: Printer not responding!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impressora não responde!\n"
 msgid "ERROR: Remote host did not accept control file (%d)\n"
 msgid "ERROR: Remote host did not accept control file (%d)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Host remoto não aceitou ficheiro de controlo (%d)\n"
 msgid "ERROR: Remote host did not accept data file (%d)\n"
 msgid "ERROR: Remote host did not accept data file (%d)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Host remoto não aceitou ficheiro de dados (%d)\n"
 msgid "ERROR: Unable to add file %d to job: %s\n"
 msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível adicionar ficheiro %d ao trabalho: %s\n"
 msgid "ERROR: Unable to cancel job %d: %s\n"
 msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível cancelar trabalho %d: %s\n"
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
 msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível criar ficheiro de impressão comprimido temporário: %s\n"
 msgid "ERROR: Unable to create temporary file - %s.\n"
 msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível criar ficheiro temporário - %s.\n"
 msgid "ERROR: Unable to create temporary file: %s\n"
 msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível criar ficheiro temporário: %s.\n"
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
 msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível executar pictwpstops: %s\n"
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
 msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível separar pictwpstops: %s\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
 msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível obter ficheiro PPD para impressora \"%s\" - %s.\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível obter atributos do trabalho %d (%s)!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
 msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível obter estado da impressora (%s)!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
 msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível localizar impressora '%s'!\n"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
 msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir \"%s\" - %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
 msgid "ERROR: Unable to open %s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir %s: %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
 msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de periférico \"%s\": %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
 msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro \"%s\" - %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
 msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr ""
-
+msgstr "ERROR: Impossível abrir ficheiro \"%s\": %s\n"
 msgid "ERROR: Unable to open image file for printing!\n"
 msgid "ERROR: Unable to open image file for printing!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de imagem para impressão!\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
 msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão \"%s\": %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
 msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão %s - %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
 msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão %s: %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
 msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão comprimido temporário: %s\n"
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
 msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível atingir offset %ld no ficheiro - %s\n"
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
 msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível atingir offset %lld no ficheiro - %s\n"
 msgid "ERROR: Unable to send print data (%d)\n"
 msgid "ERROR: Unable to send print data (%d)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível enviar dados de impressão (%d)\n"
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
 msgid "ERROR: Unable to wait for pictwpstops: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível aguardar por pictwpstops: %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
 msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível escrever %d bytes em \"%s\": %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
 msgid "ERROR: Unable to write print data: %s\n"
-msgstr ""
-
+msgstr "ERROR: Impossível escrever dados de impressão: %s\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
 msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível escrever dados de retícula no recurso!\n"
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
 msgid "ERROR: Unable to write uncompressed document data: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível escrever dados de documento não comprimidos: %s\n"
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor de opção de encriptação desconhecido \"%s\"!\n"
 msgid "ERROR: Unknown file order \"%s\"\n"
 msgid "ERROR: Unknown file order \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ordem de ficheiro desconhecida \"%s\"\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Caracteres de formato desconhecido \"%c\"\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Opção desconhecida \"%s\" com valor \"%s\"!\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Modo de impressão desconhecido \"%s\"\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor de opção de versão desconhecido \"%s\"!\n"
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor de brilho não suportado %s ao utilizar brilho=100!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor gama não suportado %s ao utilizar gama=1000!\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor number-up não suportado %d ao utilizar number-up=1!\n"
+msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
+msgstr "ERROR: Valor number-up-layout não suportado %s ao utilizar number-up-layout=lrtb!\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
 msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor page-border não suportado %s ao utilizar page-border=none!\n"
 msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
 msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado excesso doc_printf (%d bytes); a interromper!\n"
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgid "ERROR: pictwpstops exited on signal %d!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: pictwpstops saiu ao sinal %d!\n"
 msgid "ERROR: pictwpstops exited with status %d!\n"
 msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr ""
-
-msgid ""
-"ERROR: recoverable: Unable to connect to printer; will retry in 30 "
-"seconds...\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: pictwpstops saiu com o estado %d!\n"
+msgid "ERROR: recoverable: Unable to connect to printer; will retry in 30 seconds...\n"
+msgstr "ERROR: recuperável: Impossível ligar à impressora; nova tentativa dentro de 30 segundos...\n"
 msgid "ERROR: select() returned %d\n"
 msgid "ERROR: select() returned %d\n"
-msgstr ""
-
+msgstr "ERROR: selecção() devolveu %d\n"
 msgid "Edit Configuration File"
 msgid "Edit Configuration File"
-msgstr ""
-
+msgstr "Editar ficheiro de configuração"
 msgid "Empty PPD file!"
 msgid "Empty PPD file!"
-msgstr ""
-
+msgstr "Ficheiro PPD vazio!"
 msgid "Ending Banner"
 msgid "Ending Banner"
-msgstr ""
-
+msgstr "Terminar faixa publicitária"
 msgid "Enter old password:"
 msgid "Enter old password:"
-msgstr ""
-
+msgstr "Introduza palavra-passe antiga:"
 msgid "Enter password again:"
 msgid "Enter password again:"
-msgstr ""
-
+msgstr "Introduza palavra-passe novamente:"
 msgid "Enter password:"
 msgid "Enter password:"
-msgstr ""
-
-msgid ""
-"Enter your username and password or the root username and password to access "
-"this page. If you are using Kerberos authentication, make sure you have a "
-"valid Kerberos ticket."
-msgstr ""
-
+msgstr "Introduza palavra-passe:"
+msgid "Enter your username and password or the root username and password to access this page. If you are using Kerberos authentication, make sure you have a valid Kerberos ticket."
+msgstr "Introduza o seu nome de utilizador e palavra-passe ou o nome de utilizador e palavra-passe da raiz para aceder a esta página. Se utilizar a autenticação Kerberos, certifique-se que tem um ticket de Kerberos válido."
 msgid "Error Policy"
 msgid "Error Policy"
-msgstr ""
-
+msgstr "Política de Erros"
 msgid "Error: need hostname after '-h' option!\n"
 msgid "Error: need hostname after '-h' option!\n"
-msgstr ""
-
+msgstr "Erro: necessário nome de host após opção '-h'!\n"
 msgid "Export Printers to Samba"
 msgid "Export Printers to Samba"
-msgstr ""
-
+msgstr "Exportar Impressoras para Samba"
 msgid "FAIL\n"
 msgid "FAIL\n"
-msgstr ""
-
-#, c-format
+msgstr "FAIL\n"
 msgid "FATAL: Could not load %s\n"
 msgid "FATAL: Could not load %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"File device URIs have been disabled! To enable, see the FileDevice directive "
-"in \"%s/cupsd.conf\"."
-msgstr ""
-
+msgstr "FATAL: Impossível carregar %s\n"
+msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgstr "URIs do periférico do ficheiro foram desactivados! Para activar, consulte a directiva FileDevice em \"%s/cupsd.conf\"."
 msgid "Fuser temperature high!"
 msgid "Fuser temperature high!"
-msgstr ""
-
+msgstr "Temperatura do fusor elevada!"
 msgid "Fuser temperature low!"
 msgid "Fuser temperature low!"
-msgstr ""
-
+msgstr "Temperatura do fusor baixa!"
 msgid "General"
 msgid "General"
-msgstr ""
-
+msgstr "Geral"
 msgid "Got a printer-uri attribute but no job-id!"
 msgid "Got a printer-uri attribute but no job-id!"
-msgstr ""
-
+msgstr "Obtive um atributo printer-uri, mas não job-id!"
 msgid "Help"
 msgid "Help"
-msgstr ""
-
-#, c-format
+msgstr "Ajuda"
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
 msgid "INFO: Attempting to connect to host %s for printer %s\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Tentativa de ligar ao host %s para impressora %s\n"
 msgid "INFO: Attempting to connect to host %s on port %d\n"
 msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr ""
-
+msgstr "INFO: Tentativa de ligar ao host %s na porta %d\n"
 msgid "INFO: Canceling print job...\n"
 msgid "INFO: Canceling print job...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A cancelar trabalho de impressão...\n"
 msgid "INFO: Connected to %s...\n"
 msgid "INFO: Connected to %s...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ligado a %s...\n"
 msgid "INFO: Connecting to %s on port %d...\n"
 msgid "INFO: Connecting to %s on port %d...\n"
-msgstr ""
-
+msgstr "INFO: A ligar a %s na porta %d...\n"
 msgid "INFO: Control file sent successfully\n"
 msgid "INFO: Control file sent successfully\n"
-msgstr ""
-
+msgstr "INFO: Ficheiro de controlo enviado com êxito\n"
 msgid "INFO: Data file sent successfully\n"
 msgid "INFO: Data file sent successfully\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de dados enviado com êxito\n"
 msgid "INFO: Formatting page %d...\n"
 msgid "INFO: Formatting page %d...\n"
-msgstr ""
-
+msgstr "INFO: A formatar página %d...\n"
 msgid "INFO: Loading image file...\n"
 msgid "INFO: Loading image file...\n"
-msgstr ""
-
+msgstr "INFO: A carregar ficheiro de imagem...\n"
 msgid "INFO: Print file sent, waiting for printer to finish...\n"
 msgid "INFO: Print file sent, waiting for printer to finish...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de impressão enviado; a aguardar conclusão da impressora...\n"
 msgid "INFO: Printer busy (status:0x%08x)\n"
 msgid "INFO: Printer busy (status:0x%08x)\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada (estado:0x%08x)\n"
 msgid "INFO: Printer busy; will retry in 10 seconds...\n"
 msgid "INFO: Printer busy; will retry in 10 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada; nova tentativa dentro de 10 segundos...\n"
 msgid "INFO: Printer busy; will retry in 30 seconds...\n"
 msgid "INFO: Printer busy; will retry in 30 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada; nova tentativa dentro de 30 segundos...\n"
 msgid "INFO: Printer busy; will retry in 5 seconds...\n"
 msgid "INFO: Printer busy; will retry in 5 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada; nova tentativa dentro de 5 segundos...\n"
 msgid "INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"
 msgid "INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"
-msgstr ""
-
+msgstr "INFO: Impressora não suporta IPP/1.1; a tentar IPP/1.0...\n"
 msgid "INFO: Printer is busy; will retry in 5 seconds...\n"
 msgid "INFO: Printer is busy; will retry in 5 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora está ocupada; nova tentativa dentro de 5 segundos...\n"
 msgid "INFO: Printer is currently off-line.\n"
 msgid "INFO: Printer is currently off-line.\n"
-msgstr ""
-
+msgstr "INFO: Impressora está actualmente sem ligação.\n"
 msgid "INFO: Printer is now on-line.\n"
 msgid "INFO: Printer is now on-line.\n"
-msgstr ""
-
+msgstr "INFO: Impressora tem agora ligação.\n"
 msgid "INFO: Printer not connected; will retry in 30 seconds...\n"
 msgid "INFO: Printer not connected; will retry in 30 seconds...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Impressora sem ligação; nova tentativa dentro de 30 segundos...\n"
 msgid "INFO: Printing page %d, %d%% complete...\n"
 msgid "INFO: Printing page %d, %d%% complete...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A imprimir página %d, %d%% concluído...\n"
 msgid "INFO: Printing page %d...\n"
 msgid "INFO: Printing page %d...\n"
-msgstr ""
-
+msgstr "INFO: A imprimir página %d...\n"
 msgid "INFO: Ready to print.\n"
 msgid "INFO: Ready to print.\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Preparada para imprimir.\n"
 msgid "INFO: Sending control file (%lu bytes)\n"
 msgid "INFO: Sending control file (%lu bytes)\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar ficheiro de controlo (%lu bytes)\n"
 msgid "INFO: Sending control file (%u bytes)\n"
 msgid "INFO: Sending control file (%u bytes)\n"
-msgstr ""
-
+msgstr "INFO: A enviar ficheiro de controlo (%u bytes)\n"
 msgid "INFO: Sending data\n"
 msgid "INFO: Sending data\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar dados\n"
 msgid "INFO: Sending data file (%ld bytes)\n"
 msgid "INFO: Sending data file (%ld bytes)\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar ficheiro de dados (%ld bytes)\n"
 msgid "INFO: Sending data file (%lld bytes)\n"
 msgid "INFO: Sending data file (%lld bytes)\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar ficheiro de dados (%lld bytes)\n"
 msgid "INFO: Sent print file, %ld bytes...\n"
 msgid "INFO: Sent print file, %ld bytes...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de impressão enviado, %ld bytes...\n"
 msgid "INFO: Sent print file, %lld bytes...\n"
 msgid "INFO: Sent print file, %lld bytes...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de impressão enviado, %lld bytes...\n"
 msgid "INFO: Spooling LPR job, %.0f%% complete...\n"
 msgid "INFO: Spooling LPR job, %.0f%% complete...\n"
-msgstr ""
-
+msgstr "INFO: A processar trabalho LPR, %.0f%% concluído...\n"
 msgid "INFO: Unable to contact printer, queuing on next printer in class...\n"
 msgid "INFO: Unable to contact printer, queuing on next printer in class...\n"
-msgstr ""
-
+msgstr "INFO: Impossível contactar impressora; a colocar em fila na próxima impressora na classe...\n"
 msgid "INFO: Waiting for job to complete...\n"
 msgid "INFO: Waiting for job to complete...\n"
-msgstr ""
-
+msgstr "INFO: A aguardar conclusão do trabalho...\n"
 msgid "Illegal control character"
 msgid "Illegal control character"
-msgstr ""
-
+msgstr "Carácter de controlo ilegal"
 msgid "Illegal main keyword string"
 msgid "Illegal main keyword string"
-msgstr ""
-
+msgstr "Cadeia de palavra-chave principal ilegal"
 msgid "Illegal option keyword string"
 msgid "Illegal option keyword string"
-msgstr ""
-
+msgstr "Cadeia de palavra-chave de opção ilegal"
 msgid "Illegal translation string"
 msgid "Illegal translation string"
-msgstr ""
-
+msgstr "Cadeia de tradução ilegal"
 msgid "Illegal whitespace character"
 msgid "Illegal whitespace character"
-msgstr ""
-
+msgstr "Carácter de espaço em branco ilegal"
 msgid "Ink/toner almost empty."
 msgid "Ink/toner almost empty."
-msgstr ""
-
+msgstr "Tinta/toner quase vazio."
 msgid "Ink/toner empty!"
 msgid "Ink/toner empty!"
-msgstr ""
-
+msgstr "Tinta/toner vazio!"
 msgid "Ink/toner waste bin almost full."
 msgid "Ink/toner waste bin almost full."
-msgstr ""
-
+msgstr "Receptáculo de tinta/toner quase cheio."
 msgid "Ink/toner waste bin full!"
 msgid "Ink/toner waste bin full!"
-msgstr ""
-
+msgstr "Receptáculo de tinta/toner cheio!"
 msgid "Interlock open."
 msgid "Interlock open."
-msgstr ""
-
+msgstr "Bloqueio aberto."
 msgid "Internal error"
 msgid "Internal error"
-msgstr ""
-
+msgstr "Erro interno"
 msgid "JCL"
 msgid "JCL"
-msgstr ""
-
-#, c-format
+msgstr "JCL"
 msgid "Job #%d cannot be restarted - no files!"
 msgid "Job #%d cannot be restarted - no files!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível reiniciar trabalho #%d  - sem ficheiros!"
 msgid "Job #%d does not exist!"
 msgid "Job #%d does not exist!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não existe!"
 msgid "Job #%d is already aborted - can't cancel."
 msgid "Job #%d is already aborted - can't cancel."
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d já interrompido - impossível cancelar."
 msgid "Job #%d is already canceled - can't cancel."
 msgid "Job #%d is already canceled - can't cancel."
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d já cancelado - impossível cancelar."
 msgid "Job #%d is already completed - can't cancel."
 msgid "Job #%d is already completed - can't cancel."
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d já concluído - impossível cancelar."
 msgid "Job #%d is finished and cannot be altered!"
 msgid "Job #%d is finished and cannot be altered!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d concluído; não é possível alterar!"
 msgid "Job #%d is not complete!"
 msgid "Job #%d is not complete!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não concluído!"
 msgid "Job #%d is not held for authentication!"
 msgid "Job #%d is not held for authentication!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não retido para autenticação!"
 msgid "Job #%d is not held!"
 msgid "Job #%d is not held!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não retido!"
 msgid "Job #%s does not exist!"
 msgid "Job #%s does not exist!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%s não existe!"
 msgid "Job %d not found!"
 msgid "Job %d not found!"
-msgstr ""
-
+msgstr "Trabalho %d não encontrado!"
 msgid "Job Completed"
 msgid "Job Completed"
-msgstr ""
-
+msgstr "Trabalho concluído"
 msgid "Job Created"
 msgid "Job Created"
-msgstr ""
-
+msgstr "Trabalho criado"
 msgid "Job Options Changed"
 msgid "Job Options Changed"
-msgstr ""
-
+msgstr "Opções de trabalho alteradas"
 msgid "Job Stopped"
 msgid "Job Stopped"
-msgstr ""
-
+msgstr "Trabalho parado"
 msgid "Job is completed and cannot be changed."
 msgid "Job is completed and cannot be changed."
-msgstr ""
-
+msgstr "Trabalho concluído; não é possível alterar."
 msgid "Job operation failed:"
 msgid "Job operation failed:"
-msgstr ""
-
+msgstr "Operação de trabalho falhou:"
 msgid "Job state cannot be changed."
 msgid "Job state cannot be changed."
-msgstr ""
-
+msgstr "Impossível alterar estado do trabalho."
 msgid "Job subscriptions cannot be renewed!"
 msgid "Job subscriptions cannot be renewed!"
-msgstr ""
-
+msgstr "Impossível renovar subscrições do trabalho!"
 msgid "Jobs"
 msgid "Jobs"
-msgstr ""
-
-#, c-format
+msgstr "Trabalhos"
 msgid "Language \"%s\" not supported!"
 msgid "Language \"%s\" not supported!"
-msgstr ""
-
+msgstr "Idioma \"%s\" não suportado!"
 msgid "Line longer than the maximum allowed (255 characters)"
 msgid "Line longer than the maximum allowed (255 characters)"
-msgstr ""
-
+msgstr "Linha excede máximo permitido (255 caracteres)"
 msgid "List Available Printers"
 msgid "List Available Printers"
-msgstr ""
-
+msgstr "Apresentar impressoras disponíveis"
 msgid "Media Size"
 msgid "Media Size"
-msgstr ""
-
+msgstr "Tamanho do suporte"
 msgid "Media Source"
 msgid "Media Source"
-msgstr ""
-
+msgstr "Origem do suporte"
 msgid "Media Type"
 msgid "Media Type"
-msgstr ""
-
+msgstr "Tipo de suporte"
 msgid "Media jam!"
 msgid "Media jam!"
-msgstr ""
-
+msgstr "Suporte encravado!"
 msgid "Media tray almost empty."
 msgid "Media tray almost empty."
-msgstr ""
-
+msgstr "Tabuleiro de suporte quase vazio."
 msgid "Media tray empty!"
 msgid "Media tray empty!"
-msgstr ""
-
+msgstr "Tabuleiro de suporte vazio!"
 msgid "Media tray missing!"
 msgid "Media tray missing!"
-msgstr ""
-
+msgstr "Tabuleiro de suporte inexistente!"
 msgid "Media tray needs to be filled."
 msgid "Media tray needs to be filled."
-msgstr ""
-
+msgstr "É necessário encher o tabuleiro de suporte."
 msgid "Memory allocation error"
 msgid "Memory allocation error"
-msgstr ""
-
+msgstr "Erro de alocação de memória"
 msgid "Missing PPD-Adobe-4.x header"
 msgid "Missing PPD-Adobe-4.x header"
-msgstr ""
-
+msgstr "Cabeçalho PPD-Adobe-4.x inexistente"
 msgid "Missing asterisk in column 1"
 msgid "Missing asterisk in column 1"
-msgstr ""
-
-#, c-format
+msgstr "Asterisco inexistente na coluna 1"
 msgid "Missing double quote on line %d!"
 msgid "Missing double quote on line %d!"
-msgstr ""
-
+msgstr "Aspas inexistentes na linha %d!"
 msgid "Missing form variable!"
 msgid "Missing form variable!"
-msgstr ""
-
+msgstr "Variável de formato inexistente!"
 msgid "Missing notify-subscription-ids attribute!"
 msgid "Missing notify-subscription-ids attribute!"
-msgstr ""
-
+msgstr "Atributo notify-subscription-ids inexistente!"
 msgid "Missing requesting-user-name attribute!"
 msgid "Missing requesting-user-name attribute!"
-msgstr ""
-
+msgstr "Atributo requesting-user-name inexistente!"
 msgid "Missing required attributes!"
 msgid "Missing required attributes!"
-msgstr ""
-
-#, c-format
+msgstr "Atributos necessários inexistentes!"
 msgid "Missing value on line %d!"
 msgid "Missing value on line %d!"
-msgstr ""
-
+msgstr "Valor inexistente na linha %d!"
 msgid "Missing value string"
 msgid "Missing value string"
-msgstr ""
-
-#, c-format
-msgid ""
-"Model:  name = %s\n"
-"        natural_language = %s\n"
-"        make-and-model = %s\n"
-"        device-id = %s\n"
-msgstr ""
-
+msgstr "Cadeia de valor inexistente"
+msgid "Model:  name = %s\n        natural_language = %s\n        make-and-model = %s\n        device-id = %s\n"
+msgstr "Modelo:  name = %s\n        natural_language = %s\n        make-and-model = %s\n        device-id = %s\n"
 msgid "Modify Class"
 msgid "Modify Class"
-msgstr ""
-
+msgstr "Modificar classe"
 msgid "Modify Printer"
 msgid "Modify Printer"
-msgstr ""
-
+msgstr "Modificar impressora"
 msgid "Move All Jobs"
 msgid "Move All Jobs"
-msgstr ""
-
+msgstr "Mover todos os trabalhos"
 msgid "Move Job"
 msgid "Move Job"
-msgstr ""
-
-#, c-format
+msgstr "Mover trabalho"
 msgid "NOTICE: Print file accepted - job ID %d.\n"
 msgid "NOTICE: Print file accepted - job ID %d.\n"
-msgstr ""
-
+msgstr "NOTICE: Ficheiro de impressão aceite - ID do trabalho %d.\n"
 msgid "NOTICE: Print file accepted - job ID unknown.\n"
 msgid "NOTICE: Print file accepted - job ID unknown.\n"
-msgstr ""
-
+msgstr "NOTICE: Ficheiro de impressão aceite - ID do trabalho desconhecido.\n"
 msgid "NULL PPD file pointer"
 msgid "NULL PPD file pointer"
-msgstr ""
-
+msgstr "Ponteiro do ficheiro PPD NULL"
 msgid "No"
 msgid "No"
-msgstr ""
-
+msgstr "Não"
 msgid "No Windows printer drivers are installed!"
 msgid "No Windows printer drivers are installed!"
-msgstr ""
-
-#, c-format
+msgstr "Sem controladores de impressora Windows instalados!"
 msgid "No active jobs on %s!"
 msgid "No active jobs on %s!"
-msgstr ""
-
+msgstr "Sem trabalhos activos em %s!"
 msgid "No attributes in request!"
 msgid "No attributes in request!"
-msgstr ""
-
+msgstr "Sem atributos no pedido!"
 msgid "No authentication information provided!"
 msgid "No authentication information provided!"
-msgstr ""
-
+msgstr "Sem informações de autenticação fornecidas!"
 msgid "No default printer"
 msgid "No default printer"
-msgstr ""
-
+msgstr "Sem impressora predefinida"
 msgid "No destinations added."
 msgid "No destinations added."
-msgstr ""
-
+msgstr "Sem destinos adicionados."
 msgid "No file!?!"
 msgid "No file!?!"
-msgstr ""
-
+msgstr "Sem ficheiro!?!"
 msgid "No subscription attributes in request!"
 msgid "No subscription attributes in request!"
-msgstr ""
-
+msgstr "Sem atributos de subscrição no pedido!"
 msgid "No subscriptions found."
 msgid "No subscriptions found."
-msgstr ""
-
+msgstr "Sem subscrições."
 msgid "None"
 msgid "None"
-msgstr ""
-
+msgstr "Sem"
 msgid "Not allowed to print."
 msgid "Not allowed to print."
-msgstr ""
-
+msgstr "Sem permissão para imprimir."
 msgid "OK"
 msgid "OK"
-msgstr ""
-
+msgstr "OK"
 msgid "OPC almost at end-of-life."
 msgid "OPC almost at end-of-life."
-msgstr ""
-
+msgstr "OPC quase em fim de vida."
 msgid "OPC at end-of-life!"
 msgid "OPC at end-of-life!"
-msgstr ""
-
+msgstr "OPC em fim de vida!"
 msgid "OpenGroup without a CloseGroup first"
 msgid "OpenGroup without a CloseGroup first"
-msgstr ""
-
+msgstr "OpenGroup sem um CloseGroup primeiro"
 msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
 msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
-msgstr ""
-
+msgstr "OpenUI/JCLOpenUI sem um CloseUI/JCLCloseUI primeiro"
 msgid "Operation Policy"
 msgid "Operation Policy"
-msgstr ""
-
+msgstr "Política de Operação"
 msgid "Options Installed"
 msgid "Options Installed"
-msgstr ""
-
+msgstr "Opções instaladas"
 msgid "Out of toner!"
 msgid "Out of toner!"
-msgstr ""
-
+msgstr "Sem toner!"
 msgid "Output Mode"
 msgid "Output Mode"
-msgstr ""
-
+msgstr "Modo de saída"
 msgid "Output bin almost full."
 msgid "Output bin almost full."
-msgstr ""
-
+msgstr "Receptáculo de saída quase cheio."
 msgid "Output bin full!"
 msgid "Output bin full!"
-msgstr ""
-
-#, c-format
+msgstr "Receptáculo de saída cheio!"
 msgid "Output for printer %s is sent to %s\n"
 msgid "Output for printer %s is sent to %s\n"
-msgstr ""
-
-#, c-format
+msgstr "Saída de impressora %s enviada para %s\n"
 msgid "Output for printer %s is sent to remote printer %s on %s\n"
 msgid "Output for printer %s is sent to remote printer %s on %s\n"
-msgstr ""
-
-#, c-format
+msgstr "Saída de impressora %s enviada para impressora remota %s em %s\n"
 msgid "Output for printer %s/%s is sent to %s\n"
 msgid "Output for printer %s/%s is sent to %s\n"
-msgstr ""
-
-#, c-format
+msgstr "Saída de impressora %s/%s enviada para %s\n"
 msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
 msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
-msgstr ""
-
+msgstr "Saída de impressora %s/%s enviada para impressora remota %s em %s\n"
 msgid "Output tray missing!"
 msgid "Output tray missing!"
-msgstr ""
-
+msgstr "Tabuleiro de saída inexistente!"
 msgid "PASS\n"
 msgid "PASS\n"
-msgstr ""
-
+msgstr "PASS\n"
 msgid "PS Binary Protocol"
 msgid "PS Binary Protocol"
-msgstr ""
-
-#, c-format
+msgstr "Protocolo Binário PS"
 msgid "Password for %s on %s? "
 msgid "Password for %s on %s? "
-msgstr ""
-
-#, c-format
+msgstr "Palavra-passe para %s em %s? "
 msgid "Password for %s required to access %s via SAMBA: "
 msgid "Password for %s required to access %s via SAMBA: "
-msgstr ""
-
+msgstr "Palavra-passe para %s requerida para aceder a %s via SAMBA: "
 msgid "Policies"
 msgid "Policies"
-msgstr ""
-
+msgstr "Políticas"
 msgid "Print Job:"
 msgid "Print Job:"
-msgstr ""
-
+msgstr "Imprimir trabalho:"
 msgid "Print Test Page"
 msgid "Print Test Page"
-msgstr ""
-
+msgstr "Imprimir página de teste"
 msgid "Printer Added"
 msgid "Printer Added"
-msgstr ""
-
+msgstr "Impressora adicionada"
 msgid "Printer Deleted"
 msgid "Printer Deleted"
-msgstr ""
-
+msgstr "Impressora apagada"
 msgid "Printer Maintenance"
 msgid "Printer Maintenance"
-msgstr ""
-
+msgstr "Manutenção da impressora"
 msgid "Printer Modified"
 msgid "Printer Modified"
-msgstr ""
-
+msgstr "Impressora modificada"
 msgid "Printer Stopped"
 msgid "Printer Stopped"
-msgstr ""
-
+msgstr "Impressora parada"
 msgid "Printer off-line."
 msgid "Printer off-line."
-msgstr ""
-
+msgstr "Impressora sem ligação."
 msgid "Printer:"
 msgid "Printer:"
-msgstr ""
-
+msgstr "Impressora:"
 msgid "Printers"
 msgid "Printers"
-msgstr ""
-
+msgstr "Impressoras"
 msgid "Purge Jobs"
 msgid "Purge Jobs"
-msgstr ""
-
+msgstr "Limpar trabalhos"
 msgid "Quota limit reached."
 msgid "Quota limit reached."
-msgstr ""
-
+msgstr "Quota atingida."
 msgid "Rank    Owner   Job     File(s)                         Total Size\n"
 msgid "Rank    Owner   Job     File(s)                         Total Size\n"
-msgstr ""
-
-msgid ""
-"Rank   Owner      Pri  Job        Files                       Total Size\n"
-msgstr ""
-
+msgstr "Classificação    Proprietário   Trabalho     Ficheiro(s)                         Tamanho total\n"
+msgid "Rank   Owner      Pri  Job        Files                       Total Size\n"
+msgstr "Classificação   Proprietário      Pri  Trabalho        Ficheiros                       Tamanho total\n"
 msgid "Reject Jobs"
 msgid "Reject Jobs"
-msgstr ""
-
+msgstr "Rejeitar trabalhos"
 msgid "Resolution"
 msgid "Resolution"
-msgstr ""
-
-#, c-format
+msgstr "Resolução"
 msgid "Running command: %s %s -N -A %s -c '%s'\n"
 msgid "Running command: %s %s -N -A %s -c '%s'\n"
-msgstr ""
-
+msgstr "Comando em execução: %s %s -N -A %s -c '%s'\n"
 msgid "Server Restarted"
 msgid "Server Restarted"
-msgstr ""
-
+msgstr "Servidor reiniciado"
 msgid "Server Security Auditing"
 msgid "Server Security Auditing"
-msgstr ""
-
+msgstr "Auditoria de segurança do servidor"
 msgid "Server Started"
 msgid "Server Started"
-msgstr ""
-
+msgstr "Servidor iniciado"
 msgid "Server Stopped"
 msgid "Server Stopped"
-msgstr ""
-
+msgstr "Servidor parado"
 msgid "Set Allowed Users"
 msgid "Set Allowed Users"
-msgstr ""
-
+msgstr "Especificar utilizadores permitidos"
 msgid "Set As Default"
 msgid "Set As Default"
-msgstr ""
-
+msgstr "Predefinir"
 msgid "Set Class Options"
 msgid "Set Class Options"
-msgstr ""
-
+msgstr "Especificar opções de classe"
 msgid "Set Printer Options"
 msgid "Set Printer Options"
-msgstr ""
-
+msgstr "Especificar opções de impressora"
 msgid "Set Publishing"
 msgid "Set Publishing"
-msgstr ""
-
+msgstr "Especificar publicação"
 msgid "Start Class"
 msgid "Start Class"
-msgstr ""
-
+msgstr "Iniciar classe"
 msgid "Start Printer"
 msgid "Start Printer"
-msgstr ""
-
+msgstr "Iniciar impressora"
 msgid "Starting Banner"
 msgid "Starting Banner"
-msgstr ""
-
+msgstr "Iniciar faixa publicitária"
 msgid "Stop Class"
 msgid "Stop Class"
-msgstr ""
-
+msgstr "Parar classe"
 msgid "Stop Printer"
 msgid "Stop Printer"
-msgstr ""
-
-#, c-format
+msgstr "Parar impressora"
 msgid "The PPD file \"%s\" could not be found."
 msgid "The PPD file \"%s\" could not be found."
-msgstr ""
-
-#, c-format
+msgstr "Impossível localizar o ficheiro PPD \"%s\"."
 msgid "The PPD file \"%s\" could not be opened: %s"
 msgid "The PPD file \"%s\" could not be opened: %s"
-msgstr ""
-
-msgid ""
-"The class name may only contain up to 127 printable characters and may not "
-"contain spaces, slashes (/), or the pound sign (#)."
-msgstr ""
-
-msgid ""
-"The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr ""
-
-#, c-format
+msgstr "Impossível abrir o ficheiro PPD \"%s\": %s"
+msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "O nome de classe pode ter o máximo de 127 caracteres imprimíveis e não pode ter espaços, barras (/) ou cardinal (#)."
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "Não é possível utilizar o atributo notify-lease-duration com subscrições de trabalho."
 msgid "The notify-user-data value is too large (%d > 63 octets)!"
 msgid "The notify-user-data value is too large (%d > 63 octets)!"
-msgstr ""
-
-msgid ""
-"The printer name may only contain up to 127 printable characters and may not "
-"contain spaces, slashes (/), or the pound sign (#)."
-msgstr ""
-
+msgstr "O valor notify-user-data é demasiado grande (%d > 63 octetos)!"
+msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "O nome de impressora pode ter o máximo de 127 caracteres imprimíveis e não pode ter espaços, barras (/) ou cardinal (#)."
 msgid "The printer or class is not shared!"
 msgid "The printer or class is not shared!"
-msgstr ""
-
+msgstr "Impressora ou classe não partilhadas!"
 msgid "The printer or class was not found."
 msgid "The printer or class was not found."
-msgstr ""
-
-#, c-format
+msgstr "Impressora ou classe não localizadas."
 msgid "The printer-uri \"%s\" contains invalid characters."
 msgid "The printer-uri \"%s\" contains invalid characters."
-msgstr ""
-
+msgstr "O atributo printer-uri \"%s\" contém caracteres inválidos."
 msgid "The printer-uri attribute is required!"
 msgid "The printer-uri attribute is required!"
-msgstr ""
-
-msgid ""
-"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr ""
-
-msgid ""
-"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr ""
-
-msgid ""
-"The subscription name may not contain spaces, slashes (/), question marks "
-"(?), or the pound sign (#)."
-msgstr ""
-
+msgstr "Necessário atributo printer-uri!"
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr "O atributo printer-uri deve ser do formato \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr "O atributo printer-uri deve ser do formato \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgid "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)."
+msgstr "O nome de subscrição não pode ter espaços, barras (/), pontos de interrogação (?) ou cardinal (#)."
 msgid "Toner low."
 msgid "Toner low."
-msgstr ""
-
+msgstr "Pouco toner."
 msgid "Too many active jobs."
 msgid "Too many active jobs."
-msgstr ""
-
+msgstr "Demasiados trabalhos activos."
 msgid "Unable to access cupsd.conf file:"
 msgid "Unable to access cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível aceder ao ficheiro cupsd.conf:"
 msgid "Unable to add RSS subscription:"
 msgid "Unable to add RSS subscription:"
-msgstr ""
-
+msgstr "Impossível adicionar subscrição RSS:"
 msgid "Unable to add class:"
 msgid "Unable to add class:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível adicionar classe:"
 msgid "Unable to add job for destination \"%s\"!"
 msgid "Unable to add job for destination \"%s\"!"
-msgstr ""
-
+msgstr "Impossível adicionar trabalho ao destino \"%s\"!"
 msgid "Unable to add printer:"
 msgid "Unable to add printer:"
-msgstr ""
-
+msgstr "Impossível adicionar impressora:"
 msgid "Unable to allocate memory for file types!"
 msgid "Unable to allocate memory for file types!"
-msgstr ""
-
+msgstr "Impossível alocar memória para tipos de ficheiros!"
 msgid "Unable to cancel RSS subscription:"
 msgid "Unable to cancel RSS subscription:"
-msgstr ""
-
+msgstr "Impossível cancelar subscrição RSS:"
 msgid "Unable to change printer-is-shared attribute:"
 msgid "Unable to change printer-is-shared attribute:"
-msgstr ""
-
+msgstr "Impossível alterar atributo printer-is-shared:"
 msgid "Unable to change printer:"
 msgid "Unable to change printer:"
-msgstr ""
-
+msgstr "Impossível alterar impressora:"
 msgid "Unable to change server settings:"
 msgid "Unable to change server settings:"
-msgstr ""
-
-#, c-format
-msgid "Unable to copy 64-bit CUPS printer driver files (%d)!"
-msgstr ""
-
-#, c-format
-msgid "Unable to copy 64-bit Windows printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível alterar especificações do servidor:"
 msgid "Unable to copy CUPS printer driver files (%d)!"
 msgid "Unable to copy CUPS printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de recurso de impressora CUPS (%d)!"
 msgid "Unable to copy PPD file - %s!"
 msgid "Unable to copy PPD file - %s!"
-msgstr ""
-
+msgstr "Impossível copiar ficheiro PPD - %s!"
 msgid "Unable to copy PPD file!"
 msgid "Unable to copy PPD file!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiro PPD!"
 msgid "Unable to copy Windows 2000 printer driver files (%d)!"
 msgid "Unable to copy Windows 2000 printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de controladores de impressora Windows 2000 (%d)!"
 msgid "Unable to copy Windows 9x printer driver files (%d)!"
 msgid "Unable to copy Windows 9x printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de controladores de impressora Windows 9x (%d)!"
 msgid "Unable to copy interface script - %s!"
 msgid "Unable to copy interface script - %s!"
-msgstr ""
-
+msgstr "Impossível copiar script de interface - %s!"
 msgid "Unable to create temporary file:"
 msgid "Unable to create temporary file:"
-msgstr ""
-
+msgstr "Impossível criar ficheiro temporário:"
 msgid "Unable to delete class:"
 msgid "Unable to delete class:"
-msgstr ""
-
+msgstr "Impossível apagar classe:"
 msgid "Unable to delete printer:"
 msgid "Unable to delete printer:"
-msgstr ""
-
+msgstr "Impossível apagar impressora:"
 msgid "Unable to edit cupsd.conf files larger than 1MB!"
 msgid "Unable to edit cupsd.conf files larger than 1MB!"
-msgstr ""
-
+msgstr "Impossível editar ficheiros cupsd.conf com mais de 1MB!"
 msgid "Unable to find destination for job!"
 msgid "Unable to find destination for job!"
-msgstr ""
-
+msgstr "Impossível localizar destino para trabalho!"
 msgid "Unable to get class list:"
 msgid "Unable to get class list:"
-msgstr ""
-
+msgstr "Impossível obter lista de classes:"
 msgid "Unable to get class status:"
 msgid "Unable to get class status:"
-msgstr ""
-
+msgstr "Impossível obter estado da classe:"
 msgid "Unable to get list of printer drivers:"
 msgid "Unable to get list of printer drivers:"
-msgstr ""
-
+msgstr "Impossível obter lista de recursos da impressora:"
 msgid "Unable to get printer attributes:"
 msgid "Unable to get printer attributes:"
-msgstr ""
-
+msgstr "Impossível obter atributos da impressora:"
 msgid "Unable to get printer list:"
 msgid "Unable to get printer list:"
-msgstr ""
-
+msgstr "Impossível obter lista de impressoras:"
 msgid "Unable to get printer status:"
 msgid "Unable to get printer status:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível obter estado da impressora:"
 msgid "Unable to install Windows 2000 printer driver files (%d)!"
 msgid "Unable to install Windows 2000 printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível instalar ficheiros de controladores de impressora Windows 2000 (%d)!"
 msgid "Unable to install Windows 9x printer driver files (%d)!"
 msgid "Unable to install Windows 9x printer driver files (%d)!"
-msgstr ""
-
+msgstr "Impossível instalar ficheiros de controladores de impressora Windows 9x (%d)!"
 msgid "Unable to modify class:"
 msgid "Unable to modify class:"
-msgstr ""
-
+msgstr "Impossível modificar classe:"
 msgid "Unable to modify printer:"
 msgid "Unable to modify printer:"
-msgstr ""
-
+msgstr "Impossível modificar impressora:"
 msgid "Unable to move job"
 msgid "Unable to move job"
-msgstr ""
-
+msgstr "Impossível mover trabalho"
 msgid "Unable to move jobs"
 msgid "Unable to move jobs"
-msgstr ""
-
+msgstr "Impossível mover trabalhos"
 msgid "Unable to open PPD file"
 msgid "Unable to open PPD file"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro PPD"
 msgid "Unable to open PPD file:"
 msgid "Unable to open PPD file:"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro PPD:"
 msgid "Unable to open cupsd.conf file:"
 msgid "Unable to open cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro cupsd.conf:"
 msgid "Unable to print test page:"
 msgid "Unable to print test page:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível imprimir página de teste:"
 msgid "Unable to run \"%s\": %s\n"
 msgid "Unable to run \"%s\": %s\n"
-msgstr ""
-
+msgstr "Impossível executar \"%s\": %s\n"
 msgid "Unable to send maintenance job:"
 msgid "Unable to send maintenance job:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível enviar trabalho de manutenção:"
 msgid "Unable to set Windows printer driver (%d)!"
 msgid "Unable to set Windows printer driver (%d)!"
-msgstr ""
-
+msgstr "Impossível definir controlador de impressora Windows (%d)!"
 msgid "Unable to set options:"
 msgid "Unable to set options:"
-msgstr ""
-
+msgstr "Impossível especificar opções:"
 msgid "Unable to upload cupsd.conf file:"
 msgid "Unable to upload cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível carregar ficheiro cupsd.conf:"
 msgid "Unknown"
 msgid "Unknown"
-msgstr ""
-
-#, c-format
+msgstr "Desconhecida"
 msgid "Unknown printer error (%s)!"
 msgid "Unknown printer error (%s)!"
-msgstr ""
-
-#, c-format
+msgstr "Erro de impressora desconhecido (%s)!"
 msgid "Unknown printer-error-policy \"%s\"."
 msgid "Unknown printer-error-policy \"%s\"."
-msgstr ""
-
-#, c-format
+msgstr "Printer-error-policy desconhecida \"%s\"."
 msgid "Unknown printer-op-policy \"%s\"."
 msgid "Unknown printer-op-policy \"%s\"."
-msgstr ""
-
-#, c-format
+msgstr "Printer-op-policy desconhecida \"%s\"."
 msgid "Unsupported compression \"%s\"!"
 msgid "Unsupported compression \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Compressão não suportada \"%s\"!"
 msgid "Unsupported compression attribute %s!"
 msgid "Unsupported compression attribute %s!"
-msgstr ""
-
-#, c-format
+msgstr "Atributo de compressão não suportado %s!"
 msgid "Unsupported format \"%s\"!"
 msgid "Unsupported format \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado \"%s\"!"
 msgid "Unsupported format '%s'!"
 msgid "Unsupported format '%s'!"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado '%s'!"
 msgid "Unsupported format '%s/%s'!"
 msgid "Unsupported format '%s/%s'!"
-msgstr ""
-
-msgid ""
-"Usage:\n"
-"\n"
-"    lpadmin [-h server] -d destination\n"
-"    lpadmin [-h server] -x destination\n"
-"    lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n"
-"                       [-r remove-class] [-v device] [-D description]\n"
-"                       [-P ppd-file] [-o name=value]\n"
-"                       [-u allow:user,user] [-u deny:user,user]\n"
-"\n"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado %s/%s'!"
+msgid "Usage:\n\n    lpadmin [-h server] -d destination\n    lpadmin [-h server] -x destination\n    lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n                       [-r remove-class] [-v device] [-D description]\n                       [-P ppd-file] [-o name=value]\n                       [-u allow:user,user] [-u deny:user,user]\n\n"
+msgstr "Utilização:\n\n    lpadmin [-h server] -d destination\n    lpadmin [-h server] -x destination\n    lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n                       [-r remove-class] [-v device] [-D description]\n                       [-P ppd-file] [-o name=value]\n                       [-u allow:user,user] [-u deny:user,user]\n\n"
 msgid "Usage: %s job-id user title copies options [file]\n"
 msgid "Usage: %s job-id user title copies options [file]\n"
-msgstr ""
-
-#, c-format
+msgstr "Utilização: opções de cópias de título de utilizador %s job-id [ficheiro]\n"
 msgid "Usage: %s job-id user title copies options file\n"
 msgid "Usage: %s job-id user title copies options file\n"
-msgstr ""
-
-msgid ""
-"Usage: convert [ options ]\n"
-"\n"
-"Options:\n"
-"\n"
-"  -f filename          Set file to be converted (otherwise stdin)\n"
-"  -o filename          Set file to be generated (otherwise stdout)\n"
-"  -i mime/type         Set input MIME type (otherwise auto-typed)\n"
-"  -j mime/type         Set output MIME type (otherwise application/pdf)\n"
-"  -P filename.ppd      Set PPD file\n"
-"  -a 'name=value ...'  Set option(s)\n"
-"  -U username          Set username for job\n"
-"  -J title             Set title\n"
-"  -c copies            Set number of copies\n"
-"  -u                   Remove the PPD file when finished\n"
-"  -D                   Remove the input file when finished\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsaddsmb [options] printer1 ... printerN\n"
-"       cupsaddsmb [options] -a\n"
-"\n"
-"Options:\n"
-"  -E               Encrypt the connection to the server\n"
-"  -H samba-server  Use the named SAMBA server\n"
-"  -U samba-user    Authenticate using the named SAMBA user\n"
-"  -a               Export all printers\n"
-"  -h cups-server   Use the named CUPS server\n"
-"  -v               Be verbose (show commands)\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsctl [options] [param=value ... paramN=valueN]\n"
-"\n"
-"Options:\n"
-"\n"
-"    -E                      Enable encryption\n"
-"    -U username             Specify username\n"
-"    -h server[:port]        Specify server address\n"
-"\n"
-"    --[no-]debug-logging    Turn debug logging on/off\n"
-"    --[no-]remote-admin     Turn remote administration on/off\n"
-"    --[no-]remote-any       Allow/prevent access from the Internet\n"
-"    --[no-]remote-printers  Show/hide remote printers\n"
-"    --[no-]share-printers   Turn printer sharing on/off\n"
-"    --[no-]user-cancel-any  Allow/prevent users to cancel any job\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
-"\n"
-"-c config-file      Load alternate configuration file\n"
-"-f                  Run in the foreground\n"
-"-F                  Run in the foreground but detach\n"
-"-h                  Show this usage message\n"
-"-l                  Run cupsd from launchd(8)\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsfilter -m mime/type [ options ] filename\n"
-"\n"
-"Options:\n"
-"\n"
-"  -c cupsd.conf    Set cupsd.conf file to use\n"
-"  -n copies        Set number of copies\n"
-"  -o name=value    Set option(s)\n"
-"  -p filename.ppd  Set PPD file\n"
-"  -t title         Set title\n"
-msgstr ""
-
-msgid ""
-"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
-"       cupstestdsc [options] -\n"
-"\n"
-"Options:\n"
-"\n"
-"    -h       Show program usage\n"
-"\n"
-"    Note: this program only validates the DSC comments, not the PostScript "
-"itself.\n"
-msgstr ""
-
-msgid ""
-"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
-"       program | cupstestppd [options] -\n"
-"\n"
-"Options:\n"
-"\n"
-"    -R root-directory    Set alternate root\n"
-"    -W {all,none,constraints,defaults,filters,translations}\n"
-"                         Issue warnings instead of errors\n"
-"    -q                   Run silently\n"
-"    -r                   Use 'relaxed' open mode\n"
-"    -v                   Be slightly verbose\n"
-"    -vv                  Be very verbose\n"
-msgstr ""
-
+msgstr "Utilização: ficheiro de opções de cópias de título de utilizador %s job-id\n"
+msgid "Usage: cupsaddsmb [options] printer1 ... printerN\n       cupsaddsmb [options] -a\n\nOptions:\n  -E               Encrypt the connection to the server\n  -H samba-server  Use the named SAMBA server\n  -U samba-user    Authenticate using the named SAMBA user\n  -a               Export all printers\n  -h cups-server   Use the named CUPS server\n  -v               Be verbose (show commands)\n"
+msgstr "Utilização: cupsaddsmb [options] printer1 ... printerN\n       cupsaddsmb [options] -a\n\nOpções:\n  -E               Encriptar a ligação ao servidor\n  -H samba-server  Utilizar o servidor SAMBA\n  -U samba-user    Autenticar utilizando utilizador SAMBA\n  -a               Exportar todas as impressoras\n  -h cups-server   Utilizar o servidor CUPS\n  -v               Verboso (mostrar comandos)\n"
+msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]\n\nOptions:\n\n    -E                      Enable encryption\n    -U username             Specify username\n    -h server[:port]        Specify server address\n\n    --[no-]debug-logging    Turn debug logging on/off\n    --[no-]remote-admin     Turn remote administration on/off\n    --[no-]remote-any       Allow/prevent access from the Internet\n    --[no-]remote-printers  Show/hide remote printers\n    --[no-]share-printers   Turn printer sharing on/off\n    --[no-]user-cancel-any  Allow/prevent users to cancel any job\n"
+msgstr "Utilização: cupsctl [options] [param=value ... paramN=valueN]\n\nOpções:\n\n    -E                      Activar encriptação\n    -U username             Especificar nome de utilizador\n    -h server[:port]        Especificar endereço de servidor\n\n    --[no-]debug-logging    Activar/desactivar registo da depuração\n    --[no-]remote-admin     Activar/desactivar administração remota\n    --[no-]remote-any       Permitir/impedir acesso a partir da Internet\n    --[no-]remote-printers  Mostrar/ocultar impressoras remotas\n    --[no-]share-printers   Activar/desactivar partilha de impressora\n    --[no-]user-cancel-any  Permitir/impedir utilizadores de cancelar trabalhos\n"
+msgid "Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n\n-c config-file      Load alternate configuration file\n-f                  Run in the foreground\n-F                  Run in the foreground but detach\n-h                  Show this usage message\n-l                  Run cupsd from launchd(8)\n"
+msgstr "Utilização: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n\n-c config-file      Carregar ficheiro de configuração alternativa\n-f                  Executar em primeiro plano\n-F                  Executar em primeiro plano, mas separar\n-h                  Mostrar esta mensagem de utilização\n-l                  Executar cupsd a partir de launchd(8)\n"
+msgid "Usage: cupsfilter -m mime/type [ options ] filename(s)\n\nOptions:\n\n  -c cupsd.conf    Set cupsd.conf file to use\n  -n copies        Set number of copies\n  -o name=value    Set option(s)\n  -p filename.ppd  Set PPD file\n  -t title         Set title\n"
+msgstr "Utilização: cupsfilter -m mime/type [ options ] filename(s)\n\nOpções:\n\n  -c cupsd.conf    Especificar ficheiro cupsd.conf a utilizar\n  -n copies        Especificar número de cópias\n  -o name=value    Especificar opção(ões)\n  -p filename.ppd  Especificar ficheiro PPD\n  -t title         Especificar título\n"
+msgid "Usage: cupstestdsc [options] filename.ps [... filename.ps]\n       cupstestdsc [options] -\n\nOptions:\n\n    -h       Show program usage\n\n    Note: this program only validates the DSC comments, not the PostScript itself.\n"
+msgstr "Utilização: cupstestdsc [options] filename.ps [... filename.ps]\n       cupstestdsc [options] -\n\nOpções:\n\n    -h       Mostrar utilização de programa\n\n    Nota: este programa só valida comentários DSC, não o próprio PostScript.\n"
+msgid "Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n       program | cupstestppd [options] -\n\nOptions:\n\n    -R root-directory    Set alternate root\n    -W {all,none,constraints,defaults,filters,translations}\n                         Issue warnings instead of errors\n    -q                   Run silently\n    -r                   Use 'relaxed' open mode\n    -v                   Be slightly verbose\n    -vv                  Be very verbose\n"
+msgstr "Utilização: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n       programa | cupstestppd [options] -\n\nOpções:\n\n    -R root-directory    Especificar raiz alternativa\n    -W {tudo, sem, restrições, predefinições, filtros, traduções}\n                         Emitir avisos em vez de erros\n    -q                   Executar silenciosamente\n    -r                   Utilizar modo aberto 'descontraído'\n    -v                   Ligeiramente verboso\n    -vv                  Muito verboso\n"
 msgid "Usage: lpmove job/src dest\n"
 msgid "Usage: lpmove job/src dest\n"
-msgstr ""
-
-msgid ""
-"Usage: lpoptions [-h server] [-E] -d printer\n"
-"       lpoptions [-h server] [-E] [-p printer] -l\n"
-"       lpoptions [-h server] [-E] -p printer -o option[=value] ...\n"
-"       lpoptions [-h server] [-E] -x printer\n"
-msgstr ""
-
+msgstr "Utilização: lpmove job/src dest\n"
+msgid "Usage: lpoptions [-h server] [-E] -d printer\n       lpoptions [-h server] [-E] [-p printer] -l\n       lpoptions [-h server] [-E] -p printer -o option[=value] ...\n       lpoptions [-h server] [-E] -x printer\n"
+msgstr "Utilização: lpoptions [-h server] [-E] -d printer\n       lpoptions [-h server] [-E] [-p printer] -l\n       lpoptions [-h server] [-E] -p printer -o option[=value] ...\n       lpoptions [-h server] [-E] -x printer\n"
 msgid "Usage: lppasswd [-g groupname]\n"
 msgid "Usage: lppasswd [-g groupname]\n"
-msgstr ""
-
-msgid ""
-"Usage: lppasswd [-g groupname] [username]\n"
-"       lppasswd [-g groupname] -a [username]\n"
-"       lppasswd [-g groupname] -x [username]\n"
-msgstr ""
-
-msgid ""
-"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr ""
-
+msgstr "Utilização: lppasswd [-g groupname]\n"
+msgid "Usage: lppasswd [-g groupname] [username]\n       lppasswd [-g groupname] -a [username]\n       lppasswd [-g groupname] -x [username]\n"
+msgstr "Utilização: lppasswd [-g groupname] [username]\n       lppasswd [-g groupname] -a [username]\n       lppasswd [-g groupname] -x [username]\n"
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr "Utilização: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgid "Usage: snmp [host-or-ip-address]\n"
-msgstr ""
-
-#, c-format
+msgstr "Utilização: snmp [host-or-ip-address]\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr ""
-
+msgstr "WARNING: Booleano esperado para opção waiteof \"%s\"\n"
 msgid "WARNING: Couldn't create read channel\n"
 msgid "WARNING: Couldn't create read channel\n"
-msgstr ""
-
+msgstr "WARNING: Impossível criar canal de leitura\n"
 msgid "WARNING: Couldn't create side channel\n"
 msgid "WARNING: Couldn't create side channel\n"
-msgstr ""
-
+msgstr "WARNING: Impossível criar canal lateral\n"
 msgid "WARNING: Failed to read side-channel request!\n"
 msgid "WARNING: Failed to read side-channel request!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Falha ao ler pedido de side-channel!\n"
 msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
 msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: Remote host did not respond with command status byte after %d "
-"seconds!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: Remote host did not respond with control status byte after %d "
-"seconds!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: Remote host did not respond with data status byte after %d "
-"seconds!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Impossível incluir opção \"%s\" via IncludeFeature!\n"
+msgid "WARNING: Remote host did not respond with command status byte after %d seconds!\n"
+msgstr "WARNING: Host remoto não respondeu com byte de estado de comando após %d segundos!\n"
+msgid "WARNING: Remote host did not respond with control status byte after %d seconds!\n"
+msgstr "WARNING: Host remoto não respondeu com byte de estado de controlo após %d segundos!\n"
+msgid "WARNING: Remote host did not respond with data status byte after %d seconds!\n"
+msgstr "WARNING: Host remoto não respondeu com byte de estado de dados após %d segundos!\n"
 msgid "WARNING: SCSI command timed out (%d); retrying...\n"
 msgid "WARNING: SCSI command timed out (%d); retrying...\n"
-msgstr ""
-
-msgid ""
-"WARNING: This document does not conform to the Adobe Document Structuring "
-"Conventions and may not print correctly!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Comando SCSI sem resposta (%d); a tentar de novo...\n"
+msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
+msgstr "WARNING: Este documento não está de acordo com ADSC e pode não ser impresso correctamente!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Escolha desconhecida \"%s\" para opção \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Opção desconhecida \"%s\"!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: recoverable: Network host '%s' is busy; will retry in %d "
-"seconds...\n"
-msgstr ""
-
+msgstr "WARNING: Taxa baud não suportada %s!\n"
+msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
+msgstr "WARNING: recuperável: host de rede '%s' ocupado; nova tentativa dentro de %d segundos...\n"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgid "Warning, no Windows 2000 printer drivers are installed!"
-msgstr ""
-
+msgstr "Aviso, sem controladores de impressora Windows 2000 instalados!"
 msgid "Yes"
 msgid "Yes"
-msgstr ""
-
-#, c-format
-msgid ""
-"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
-"s:%d%s</A>."
-msgstr ""
-
+msgstr "Sim"
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr "Deve aceder a esta página utilizando o URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
 msgid "aborted"
 msgid "aborted"
-msgstr ""
-
+msgstr "interrompido"
 msgid "canceled"
 msgid "canceled"
-msgstr ""
-
+msgstr "cancelado"
 msgid "completed"
 msgid "completed"
-msgstr ""
-
-msgid "convert: Use the -f option to specify a file to convert.\n"
-msgstr ""
-
+msgstr "concluído"
 msgid "cups-deviced failed to execute."
 msgid "cups-deviced failed to execute."
-msgstr ""
-
+msgstr "cups-deviced falhou a execução."
 msgid "cups-driverd failed to execute."
 msgid "cups-driverd failed to execute."
-msgstr ""
-
-#, c-format
+msgstr "cups-driverd falhou a execução."
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsaddsmb: Sem ficheiro PPD para impressora \"%s\" - %s\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsctl: Opção desconhecida \"%s\"!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr ""
-
+msgstr "cupsctl: Opção desconhecida \"-%c\"!\n"
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsd: Nome de ficheiro config esperado após opção \"-c\"!\n"
 msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
 msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsd: Argumento desconhecido \"%s\" - a interromper!\n"
 msgid "cupsd: Unknown option \"%c\" - aborting!\n"
 msgid "cupsd: Unknown option \"%c\" - aborting!\n"
-msgstr ""
-
+msgstr "cupsd: Opção desconhecida \"%c\" - a interromper!\n"
 msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
 msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
-msgstr ""
-
+msgstr "cupsd: suporte launchd(8) não compilado; execução em modo normal.\n"
+msgid "cupsfilter: No filter to convert from %s/%s to %s/%s!\n"
+msgstr "cupsfilter: Sem filtro para converter de %s/%s para %s/%s!\n"
 msgid "cupsfilter: Only one filename can be specified!\n"
 msgid "cupsfilter: Only one filename can be specified!\n"
-msgstr ""
-
+msgstr "cupsfilter: Só pode ser especificado um nome de ficheiro!\n"
+msgid "cupsfilter: Unable to determine MIME type of \"%s\"!\n"
+msgstr "cupsfilter: Impossível determinar tipo MIME de \"%s\"!\n"
+msgid "cupsfilter: Unable to read MIME database from \"%s\"!\n"
+msgstr "cupsfilter: Impossível ler base de dados MIME a partir de \"%s\"!\n"
+msgid "cupsfilter: Unknown destination MIME type %s/%s!\n"
+msgstr "cupsfilter: Destino desconhecido de tipo MIME %s/%s!\n"
 msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
 msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
-msgstr ""
-
+msgstr "cupstestppd: Opção -q incompatível com opção -v.\n"
 msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
 msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
-msgstr ""
-
-#, c-format
+msgstr "cupstestppd: Opção -v incompatível com opção -q.\n"
 msgid "device for %s/%s: %s\n"
 msgid "device for %s/%s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "periférico para %s/%s: %s\n"
 msgid "device for %s: %s\n"
 msgid "device for %s: %s\n"
-msgstr ""
-
+msgstr "periférico para %s: %s\n"
 msgid "held"
 msgid "held"
-msgstr ""
-
+msgstr "reter"
 msgid "help\t\tget help on commands\n"
 msgid "help\t\tget help on commands\n"
-msgstr ""
-
+msgstr "help\t\tobter ajuda sobre comandos\n"
 msgid "idle"
 msgid "idle"
-msgstr ""
-
+msgstr "inactivo"
 msgid "job-printer-uri attribute missing!"
 msgid "job-printer-uri attribute missing!"
-msgstr ""
-
+msgstr "atributo job-printer-uri inexistente!"
 msgid "lpadmin: Class name can only contain printable characters!\n"
 msgid "lpadmin: Class name can only contain printable characters!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de classe só pode ter caracteres imprimíveis!\n"
 msgid "lpadmin: Expected PPD after '-P' option!\n"
 msgid "lpadmin: Expected PPD after '-P' option!\n"
-msgstr ""
-
+msgstr "lpadmin: PPD esperado após opção '-P'!\n"
 msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
 msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Permitir/negar:lista de utilizadores esperado após opção '-u'!\n"
 msgid "lpadmin: Expected class after '-r' option!\n"
 msgid "lpadmin: Expected class after '-r' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Classe esperada após opção '-r'!\n"
 msgid "lpadmin: Expected class name after '-c' option!\n"
 msgid "lpadmin: Expected class name after '-c' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de classe esperado após opção '-c'!\n"
 msgid "lpadmin: Expected description after '-D' option!\n"
 msgid "lpadmin: Expected description after '-D' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Descrição esperada após opção '-D'!\n"
 msgid "lpadmin: Expected device URI after '-v' option!\n"
 msgid "lpadmin: Expected device URI after '-v' option!\n"
-msgstr ""
-
+msgstr "lpadmin: URI de periférico esperado após opção '-v'!\n"
 msgid "lpadmin: Expected file type(s) after '-I' option!\n"
 msgid "lpadmin: Expected file type(s) after '-I' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Tipo(s) de ficheiro esperados após opção '-I'!\n"
 msgid "lpadmin: Expected hostname after '-h' option!\n"
 msgid "lpadmin: Expected hostname after '-h' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de host esperado após opção '-h'!\n"
 msgid "lpadmin: Expected interface after '-i' option!\n"
 msgid "lpadmin: Expected interface after '-i' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Interface esperada após opção '-i'!\n"
 msgid "lpadmin: Expected location after '-L' option!\n"
 msgid "lpadmin: Expected location after '-L' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Localização esperada após opção '-L'!\n"
 msgid "lpadmin: Expected model after '-m' option!\n"
 msgid "lpadmin: Expected model after '-m' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Modelo esperado após opção '-m'!\n"
 msgid "lpadmin: Expected name=value after '-o' option!\n"
 msgid "lpadmin: Expected name=value after '-o' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome=valor esperado após opção '-o'!\n"
 msgid "lpadmin: Expected printer after '-p' option!\n"
 msgid "lpadmin: Expected printer after '-p' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Impressora esperada após opção '-p'!\n"
 msgid "lpadmin: Expected printer name after '-d' option!\n"
 msgid "lpadmin: Expected printer name after '-d' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de impressora esperado após opção '-d'!\n"
 msgid "lpadmin: Expected printer or class after '-x' option!\n"
 msgid "lpadmin: Expected printer or class after '-x' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Impressora ou classe esperadas após opção '-x'!\n"
 msgid "lpadmin: No member names were seen!\n"
 msgid "lpadmin: No member names were seen!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Sem nomes de membro detectados!\n"
 msgid "lpadmin: Printer %s is already a member of class %s.\n"
 msgid "lpadmin: Printer %s is already a member of class %s.\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impressora %s já é membro da classe %s.\n"
 msgid "lpadmin: Printer %s is not a member of class %s.\n"
 msgid "lpadmin: Printer %s is not a member of class %s.\n"
-msgstr ""
-
+msgstr "lpadmin: Impressora %s não é membro da classe %s.\n"
 msgid "lpadmin: Printer name can only contain printable characters!\n"
 msgid "lpadmin: Printer name can only contain printable characters!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to add a printer to the class:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Nome de impressora só pode ter caracteres imprimíveis!\n"
+msgid "lpadmin: Unable to add a printer to the class:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível adicionar impressora à classe:\n         Especifique primeiro um nome de impressora!\n"
 msgid "lpadmin: Unable to connect to server: %s\n"
 msgid "lpadmin: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível ligar ao servidor: %s\n"
 msgid "lpadmin: Unable to create temporary file - %s\n"
 msgid "lpadmin: Unable to create temporary file - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível criar ficheiro temporário - %s\n"
 msgid "lpadmin: Unable to create temporary file: %s\n"
 msgid "lpadmin: Unable to create temporary file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível criar ficheiro temporário: %s\n"
 msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
 msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível abrir ficheiro PPD \"%s\" - %s\n"
 msgid "lpadmin: Unable to open file \"%s\": %s\n"
 msgid "lpadmin: Unable to open file \"%s\": %s\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to remove a printer from the class:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the PPD file:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the device URI:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the interface script or PPD file:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the interface script:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the printer description:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the printer location:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the printer options:\n"
-"         You must specify a printer name first!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível abrir ficheiro \"%s\": %s\n"
+msgid "lpadmin: Unable to remove a printer from the class:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível remover impressora da classe:\n         Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the PPD file:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar ficheiro PPD:\n         Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the device URI:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar URI de periférico:\n         Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the interface script or PPD file:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar script de interface ou ficheiro PPD:\n         Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the interface script:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar script de interface:\n         Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the printer description:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar descrição de impressora:\n         Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the printer location:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar localização de impressora:\n         Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the printer options:\n         You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar opções de impressora:\n         Especifique primeiro um nome de impressora!\n"
 msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
 msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Opção permitir/negar desconhecida \"%s\"!\n"
 msgid "lpadmin: Unknown argument '%s'!\n"
 msgid "lpadmin: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Argumento desconhecido '%s'!\n"
 msgid "lpadmin: Unknown option '%c'!\n"
 msgid "lpadmin: Unknown option '%c'!\n"
-msgstr ""
-
+msgstr "lpadmin: Opção desconhecida '%c'!\n"
 msgid "lpadmin: Warning - content type list ignored!\n"
 msgid "lpadmin: Warning - content type list ignored!\n"
-msgstr ""
-
+msgstr "lpadmin: Aviso - lista de tipo de conteúdo ignorada!\n"
 msgid "lpc> "
 msgid "lpc> "
-msgstr ""
-
-#, c-format
+msgstr "lpc> "
 msgid "lpinfo: Unable to connect to server: %s\n"
 msgid "lpinfo: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpinfo: Impossível ligar ao servidor: %s\n"
 msgid "lpinfo: Unknown argument '%s'!\n"
 msgid "lpinfo: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpinfo: Argumento desconhecido '%s'!\n"
 msgid "lpinfo: Unknown option '%c'!\n"
 msgid "lpinfo: Unknown option '%c'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpinfo: Opção desconhecida '%c'!\n"
 msgid "lpmove: Unable to connect to server: %s\n"
 msgid "lpmove: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpmove: Impossível ligar ao servidor: %s\n"
 msgid "lpmove: Unknown argument '%s'!\n"
 msgid "lpmove: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpmove: Argumento desconhecido '%s'!\n"
 msgid "lpmove: Unknown option '%c'!\n"
 msgid "lpmove: Unknown option '%c'!\n"
-msgstr ""
-
+msgstr "lpmove: Opção desconhecida '%c'!\n"
 msgid "lpoptions: No printers!?!\n"
 msgid "lpoptions: No printers!?!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Sem impressoras!?!\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgid "lpoptions: Unable to add printer or instance: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Impossível adicionar impressora ou instância: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
 msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Impossível obter ficheiro PPD para %s: %s\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgid "lpoptions: Unable to open PPD file for %s!\n"
-msgstr ""
-
+msgstr "lpoptions: Impossível abrir ficheiro PPD para %s!\n"
 msgid "lpoptions: Unknown printer or class!\n"
 msgid "lpoptions: Unknown printer or class!\n"
-msgstr ""
-
+msgstr "lpoptions: Impressora ou classe desconhecidas!\n"
 msgid "lppasswd: Only root can add or delete passwords!\n"
 msgid "lppasswd: Only root can add or delete passwords!\n"
-msgstr ""
-
+msgstr "lppasswd: Só raiz pode adicionar ou apagar palavras-passe!\n"
 msgid "lppasswd: Password file busy!\n"
 msgid "lppasswd: Password file busy!\n"
-msgstr ""
-
+msgstr "lppasswd: Ficheiro de palavra-passe ocupado!\n"
 msgid "lppasswd: Password file not updated!\n"
 msgid "lppasswd: Password file not updated!\n"
-msgstr ""
-
+msgstr "lppasswd: Ficheiro de palavra-passe não actualizado!\n"
 msgid "lppasswd: Sorry, password doesn't match!\n"
 msgid "lppasswd: Sorry, password doesn't match!\n"
-msgstr ""
-
-msgid ""
-"lppasswd: Sorry, password rejected.\n"
-"Your password must be at least 6 characters long, cannot contain\n"
-"your username, and must contain at least one letter and number.\n"
-msgstr ""
-
+msgstr "lppasswd: Palavra-passe não corresponde!\n"
+msgid "lppasswd: Sorry, password rejected.\nYour password must be at least 6 characters long, cannot contain\nyour username, and must contain at least one letter and number.\n"
+msgstr "lppasswd: Palavra-passe rejeitada.\nA palavra-passe deve ter o mínimo de 6 caracteres, sem conter\no nome de utilizador, e deve ter pelo menos uma letra e um número.\n"
 msgid "lppasswd: Sorry, passwords don't match!\n"
 msgid "lppasswd: Sorry, passwords don't match!\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Palavras-passe não correspondem!\n"
 msgid "lppasswd: Unable to copy password string: %s\n"
 msgid "lppasswd: Unable to copy password string: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Impossível copiar cadeia de palavra-passe: %s\n"
 msgid "lppasswd: Unable to open password file: %s\n"
 msgid "lppasswd: Unable to open password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Impossível abrir ficheiro de palavra-passe: %s\n"
 msgid "lppasswd: Unable to write to password file: %s\n"
 msgid "lppasswd: Unable to write to password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Impossível escrever no ficheiro de palavra-passe: %s\n"
 msgid "lppasswd: failed to backup old password file: %s\n"
 msgid "lppasswd: failed to backup old password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: falha ao efectuar cópia de segurança de ficheiro de palavra-passe antigo: %s\n"
 msgid "lppasswd: failed to rename password file: %s\n"
 msgid "lppasswd: failed to rename password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: falha ao alterar nome de ficheiro de palavra-passe: %s\n"
 msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
 msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
-msgstr ""
-
+msgstr "lppasswd: utilizador \"%s\" e grupo \"%s\" não existem.\n"
 msgid "lprm: Unable to contact server!\n"
 msgid "lprm: Unable to contact server!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"lpstat: error - %s environment variable names non-existent destination \"%s"
-"\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "lprm: Impossível contactar servidor!\n"
+msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lpstat: erro - nomes de variáveis de ambiente %s inexistentes no destino \"%s\"!\n"
 msgid "members of class %s:\n"
 msgid "members of class %s:\n"
-msgstr ""
-
+msgstr "membros da classe %s:\n"
 msgid "no entries\n"
 msgid "no entries\n"
-msgstr ""
-
+msgstr "sem entradas\n"
 msgid "no system default destination\n"
 msgid "no system default destination\n"
-msgstr ""
-
+msgstr "sem destino predefinido de sistema\n"
 msgid "notify-events not specified!"
 msgid "notify-events not specified!"
-msgstr ""
-
-#, c-format
+msgstr "notify-events não especificados!"
 msgid "notify-recipient-uri URI \"%s\" uses unknown scheme!"
 msgid "notify-recipient-uri URI \"%s\" uses unknown scheme!"
-msgstr ""
-
-#, c-format
+msgstr "notify-recipient-uri URI \"%s\" utiliza esquema desconhecido!"
 msgid "notify-subscription-id %d no good!"
 msgid "notify-subscription-id %d no good!"
-msgstr ""
-
-#, c-format
+msgstr "notify-subscription-id %d incorrecto!"
 msgid "open of %s failed: %s"
 msgid "open of %s failed: %s"
-msgstr ""
-
+msgstr "abertura de %s falhou: %s"
 msgid "pending"
 msgid "pending"
-msgstr ""
-
-#, c-format
+msgstr "pendente"
 msgid "printer %s disabled since %s -\n"
 msgid "printer %s disabled since %s -\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s desactivada desde %s -\n"
 msgid "printer %s is idle.  enabled since %s\n"
 msgid "printer %s is idle.  enabled since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s inactiva.  activada desde %s\n"
 msgid "printer %s now printing %s-%d.  enabled since %s\n"
 msgid "printer %s now printing %s-%d.  enabled since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s agora a imprimir %s-%d.  activada desde %s\n"
 msgid "printer %s/%s disabled since %s -\n"
 msgid "printer %s/%s disabled since %s -\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s/%s desactivada desde %s -\n"
 msgid "printer %s/%s is idle.  enabled since %s\n"
 msgid "printer %s/%s is idle.  enabled since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s/%s inactiva.  activada desde %s\n"
 msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
 msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
-msgstr ""
-
+msgstr "impressora %s/%s agora a imprimir %s-%d.  activada desde %s\n"
 msgid "processing"
 msgid "processing"
-msgstr ""
-
-#, c-format
+msgstr "a processar"
 msgid "request id is %s-%d (%d file(s))\n"
 msgid "request id is %s-%d (%d file(s))\n"
-msgstr ""
-
+msgstr "id de pedido é %s-%d (%d ficheiro(s))\n"
 msgid "scheduler is not running\n"
 msgid "scheduler is not running\n"
-msgstr ""
-
+msgstr "programador não está em execução\n"
 msgid "scheduler is running\n"
 msgid "scheduler is running\n"
-msgstr ""
-
-#, c-format
+msgstr "programador em execução\n"
 msgid "stat of %s failed: %s"
 msgid "stat of %s failed: %s"
-msgstr ""
-
+msgstr "estatística de %s falhou: %s"
 msgid "status\t\tshow status of daemon and queue\n"
 msgid "status\t\tshow status of daemon and queue\n"
-msgstr ""
-
+msgstr "status\t\tmostra estado de daemon e fila\n"
 msgid "stopped"
 msgid "stopped"
-msgstr ""
-
-#, c-format
+msgstr "parado"
 msgid "system default destination: %s\n"
 msgid "system default destination: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "destino predefinido de sistema: %s\n"
 msgid "system default destination: %s/%s\n"
 msgid "system default destination: %s/%s\n"
-msgstr ""
-
+msgstr "destino predefinido de sistema: %s/%s\n"
 msgid "unknown"
 msgid "unknown"
-msgstr ""
-
+msgstr "desconhecido"
 msgid "untitled"
 msgid "untitled"
-msgstr ""
+msgstr "sem nome"
index fe31b954de0a1ab6908be44bb6d56608b4a7da6f..342eb0533d044a1f84315040db189708fe68d7b4 100644 (file)
@@ -85,7 +85,7 @@ msgstr "                REF: Página 48-49, seção 5.2.\n"
 msgid "                REF: Pages 52-54, section 5.2.\n"
 msgstr "                REF: Página 52-54, seção 5.2.\n"
 msgid "        %-39.39s %.0f bytes\n"
 msgid "                REF: Pages 52-54, section 5.2.\n"
 msgstr "                REF: Página 52-54, seção 5.2.\n"
 msgid "        %-39.39s %.0f bytes\n"
-msgstr "        %-39.39s %.de bytes\n"
+msgstr "        %-39.39s %.0f bytes\n"
 msgid "        PASS    Default%s\n"
 msgstr "        PASS    Padrão%s\n"
 msgid "        PASS    DefaultImageableArea\n"
 msgid "        PASS    Default%s\n"
 msgstr "        PASS    Padrão%s\n"
 msgid "        PASS    DefaultImageableArea\n"
@@ -495,7 +495,7 @@ msgstr "opção + escolha inválida na linha %d!"
 msgid "Bad page-ranges values %d-%d."
 msgstr "Valores de page-ranges inválidos %d-%d."
 msgid "Bad port-monitor \"%s\"!"
 msgid "Bad page-ranges values %d-%d."
 msgstr "Valores de page-ranges inválidos %d-%d."
 msgid "Bad port-monitor \"%s\"!"
-msgstr "port-monitor inválido "
+msgstr "port-monitor %s inválido"
 msgid "Bad printer-state value %d!"
 msgstr "Valor de printer-state inválido %d!"
 msgid "Bad request version number %d.%d!"
 msgid "Bad printer-state value %d!"
 msgstr "Valor de printer-state inválido %d!"
 msgid "Bad request version number %d.%d!"
index 0c26868fd88aca9c1ba33c9488efb6ededa3c0d8..a65201ed41e070862b8c30c6b8d1ce51379e47a0 100644 (file)
@@ -665,11 +665,11 @@ msgstr "ERROR: Okänd filordning \”%s\”\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr "ERROR: Okänt formattecken \”%c\”\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr "ERROR: Okänt formattecken \”%c\”\n"
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "ERROR: Okänt alternativ \”%c\” med värdet ”%s”!\n"
+msgstr "ERROR: Okänt alternativ \”%s\” med värdet ”%s”!\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
 msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "%s: Okänt utskriftsläge \”%s\”!\n"
+msgstr "ERROR: Okänt utskriftsläge \”%s\”!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
 msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "%s: Okänt versionsalternativvärde \”%s\”!\n"
+msgstr "ERROR: Okänt versionsalternativvärde \”%s\”!\n"
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
 msgstr "ERROR: Värdet %s för ljusstyrka stöds inte, använder brightness=100!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
 msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
 msgstr "ERROR: Värdet %s för ljusstyrka stöds inte, använder brightness=100!\n"
 msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
@@ -1249,7 +1249,7 @@ msgstr "cups-driverd misslyckades med att starta."
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: Ingen PPD-fil för skrivaren \”%s\” - %s\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: Ingen PPD-fil för skrivaren \”%s\” - %s\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cupsctl: Okänt alternativ \”%c\”!\n"
+msgstr "cupsctl: Okänt alternativ \”%s\”!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
 msgstr "cupsctl: Okänt alternativ \”%c\”!\n"
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
 msgstr "cupsctl: Okänt alternativ \”%c\”!\n"
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
index 6cc391f403adda52ec3a9cd69998a226f025ea50..54b6676e7a77823f3dc60083a42f861edbb62db2 100644 (file)
@@ -472,7 +472,7 @@ msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
 "                REF: Page 122, section 5.17\n"
 msgstr ""
 "      **FAIL**  Bad %s choice %s!\n"
 "                REF: Page 122, section 5.17\n"
 msgstr ""
-"      **失败**  错误的 %s 选择!\n"
+"      **失败**  错误的 %s %s 选择!\n"
 "                REF: 页 122,节 5.17。\n"
 
 #, c-format
 "                REF: 页 122,节 5.17。\n"
 
 #, c-format
@@ -480,7 +480,7 @@ msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
 "                REF: Page 84, section 5.9\n"
 msgstr ""
 "      **FAIL**  Bad %s choice %s!\n"
 "                REF: Page 84, section 5.9\n"
 msgstr ""
-"      **失败**  错误的 %s 选择!\n"
+"      **失败**  错误的 %s %s 选择!\n"
 "                REF: 页 84,节 5.9。\n"
 
 #, c-format
 "                REF: 页 84,节 5.9。\n"
 
 #, c-format
index 3c2234b114bf214877ebf7d94727a7792d5da21c..306d60c1fd2d128bc9609ffc561343781c38844c 100644 (file)
@@ -1549,7 +1549,7 @@ msgstr "ERROR: 不支援的光度值 %s,使用光度=1000!\n"
 
 #, c-format
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
 
 #, c-format
 msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: 不支援的 number-up 值 %s,使用 number-up=1!\n"
+msgstr "ERROR: 不支援的 number-up 值 %d,使用 number-up=1!\n"
 
 #, c-format
 msgid ""
 
 #, c-format
 msgid ""
@@ -1652,7 +1652,7 @@ msgstr "INFO: 嘗試為印表機“%2$s”連接主機“%1$s”\n"
 
 #, c-format
 msgid "INFO: Attempting to connect to host %s on port %d\n"
 
 #, c-format
 msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "INFO: 嘗試在“%d”埠上連接主機“%s”\n"
+msgstr "INFO: 嘗試在“%2$d”埠上連接主機“%1$s”\n"
 
 msgid "INFO: Canceling print job...\n"
 msgstr "INFO: 正在取消列印工作⋯\n"
 
 msgid "INFO: Canceling print job...\n"
 msgstr "INFO: 正在取消列印工作⋯\n"
@@ -1663,7 +1663,7 @@ msgstr "INFO: 已連接“%s”⋯\n"
 
 #, c-format
 msgid "INFO: Connecting to %s on port %d...\n"
 
 #, c-format
 msgid "INFO: Connecting to %s on port %d...\n"
-msgstr "INFO: 正在連接“%d”埠上的“%s”⋯\n"
+msgstr "INFO: 正在連接“%2$d”埠上的“%1$s”⋯\n"
 
 msgid "INFO: Control file sent successfully\n"
 msgstr "INFO: 已成功傳送控制檔案\n"
 
 msgid "INFO: Control file sent successfully\n"
 msgstr "INFO: 已成功傳送控制檔案\n"
index 16054d90b8c4de2c8d7fb6b42e39439c84d1531f..cbb2042a2897097d85c491947883b76ec5c59139 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: bcp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: bcp.c 6802 2007-08-16 18:44:46Z mike $"
  *
  *   TBCP port monitor for the Common UNIX Printing System (CUPS).
  *
  *
  *   TBCP port monitor for the Common UNIX Printing System (CUPS).
  *
@@ -16,6 +16,9 @@
  *
  * Contents:
  *
  *
  * Contents:
  *
+ *   main()    - Main entry...
+ *   psgets()  - Get a line from a file.
+ *   pswrite() - Write data from a file.
  */
 
 /*
  */
 
 /*
@@ -248,9 +251,19 @@ pswrite(const char *buf,           /* I - Buffer to write */
   for (count = bytes; count > 0; count --, buf ++)
     switch (*buf)
     {
   for (count = bytes; count > 0; count --, buf ++)
     switch (*buf)
     {
+      case 0x04 : /* CTRL-D */
+          if (bytes == 1)
+         {
+          /*
+           * Don't quote the last CTRL-D...
+           */
+
+           putchar(0x04);
+           break;
+         }
+
       case 0x01 : /* CTRL-A */
       case 0x03 : /* CTRL-C */
       case 0x01 : /* CTRL-A */
       case 0x03 : /* CTRL-C */
-      case 0x04 : /* CTRL-D */
       case 0x05 : /* CTRL-E */
       case 0x11 : /* CTRL-Q */
       case 0x13 : /* CTRL-S */
       case 0x05 : /* CTRL-E */
       case 0x11 : /* CTRL-Q */
       case 0x13 : /* CTRL-S */
@@ -273,5 +286,5 @@ pswrite(const char *buf,            /* I - Buffer to write */
 
 
 /*
 
 
 /*
- * End of "$Id: bcp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: bcp.c 6802 2007-08-16 18:44:46Z mike $".
  */
  */
index 55039e4c2ba9d6335c5072586dd5e5febaef86f8..a310d6617ba815424e3a39c00f823e87190aee95 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: tbcp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: tbcp.c 6802 2007-08-16 18:44:46Z mike $"
  *
  *   TBCP port monitor for the Common UNIX Printing System (CUPS).
  *
  *
  *   TBCP port monitor for the Common UNIX Printing System (CUPS).
  *
@@ -120,11 +120,10 @@ main(int  argc,                           /* I - Number of command-line args */
     else
     {
      /*
     else
     {
      /*
-      * No PJL stuff, add it...
+      * No PJL stuff, just add the UEL...
       */
 
       */
 
-      puts("\033%-12345X@PJL");
-      puts("@PJL ENTER LANGUAGE = POSTSCRIPT");
+      fputs("\033%-12345X", stdout);
     }
 
    /*
     }
 
    /*
@@ -244,9 +243,19 @@ pswrite(const char *buf,           /* I - Buffer to write */
   for (count = bytes; count > 0; count --, buf ++)
     switch (*buf)
     {
   for (count = bytes; count > 0; count --, buf ++)
     switch (*buf)
     {
+      case 0x04 : /* CTRL-D */
+          if (bytes == 1)
+         {
+          /*
+           * Don't quote the last CTRL-D...
+           */
+
+           putchar(0x04);
+           break;
+         }
+
       case 0x01 : /* CTRL-A */
       case 0x03 : /* CTRL-C */
       case 0x01 : /* CTRL-A */
       case 0x03 : /* CTRL-C */
-      case 0x04 : /* CTRL-D */
       case 0x05 : /* CTRL-E */
       case 0x11 : /* CTRL-Q */
       case 0x13 : /* CTRL-S */
       case 0x05 : /* CTRL-E */
       case 0x11 : /* CTRL-Q */
       case 0x13 : /* CTRL-S */
@@ -270,5 +279,5 @@ pswrite(const char *buf,            /* I - Buffer to write */
 
 
 /*
 
 
 /*
- * End of "$Id: tbcp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: tbcp.c 6802 2007-08-16 18:44:46Z mike $".
  */
  */
index 44ef44c6229272bde1c6655146b52153b609d807..37cddc03c74b9ecec157b8c79a7e819083e2e596 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: cups.list.in 6716 2007-07-24 20:46:39Z mike $"
+# "$Id: cups.list.in 6777 2007-08-08 17:43:14Z mike $"
 #
 #   ESP Package Manager (EPM) file list for the Common UNIX Printing
 #   System (CUPS).
 #
 #   ESP Package Manager (EPM) file list for the Common UNIX Printing
 #   System (CUPS).
@@ -723,5 +723,5 @@ f 0644 root sys $XINETD/cups-lpd init/cups-lpd
 %subpackage
 
 #
 %subpackage
 
 #
-# End of "$Id: cups.list.in 6716 2007-07-24 20:46:39Z mike $".
+# End of "$Id: cups.list.in 6777 2007-08-08 17:43:14Z mike $".
 #
 #
index eb5a6d86c4e883ec1fc368e0bc5e9170edcd6aff..b3bb81d88a950cd4277b222891d86495697a3660 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: cups.spec.in 6716 2007-07-24 20:46:39Z mike $"
+# "$Id: cups.spec.in 6778 2007-08-08 19:27:51Z mike $"
 #
 #   RPM "spec" file for the Common UNIX Printing System (CUPS).
 #
 #
 #   RPM "spec" file for the Common UNIX Printing System (CUPS).
 #
@@ -627,5 +627,5 @@ rm -rf $RPM_BUILD_ROOT
 
 
 #
 
 
 #
-# End of "$Id: cups.spec.in 6716 2007-07-24 20:46:39Z mike $".
+# End of "$Id: cups.spec.in 6778 2007-08-08 19:27:51Z mike $".
 #
 #
index fc49576187c9263a7a164cab04b379fc849a5b9e..08752d28f009a1999ea861cbf6147cc4930a3825 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: Makefile 6692 2007-07-19 19:28:16Z mike $"
+# "$Id: Makefile 6802 2007-08-16 18:44:46Z mike $"
 #
 #   Scheduler Makefile for the Common UNIX Printing System (CUPS).
 #
 #
 #   Scheduler Makefile for the Common UNIX Printing System (CUPS).
 #
@@ -134,12 +134,12 @@ install:  all
        else \
                echo Creating $(SERVERROOT)/ssl...; \
                $(INSTALL_DIR) -m 700 $(SERVERROOT)/ssl; \
        else \
                echo Creating $(SERVERROOT)/ssl...; \
                $(INSTALL_DIR) -m 700 $(SERVERROOT)/ssl; \
-               -chgrp $(CUPS_GROUP) $(SERVERROOT)/ssl; \
+               chgrp $(CUPS_GROUP) $(SERVERROOT)/ssl || true; \
                echo Creating $(STATEDIR)...; \
                $(INSTALL_DIR) -m 755 $(STATEDIR); \
                echo Creating $(STATEDIR)/certs...; \
                $(INSTALL_DIR) -m 511 $(STATEDIR)/certs; \
                echo Creating $(STATEDIR)...; \
                $(INSTALL_DIR) -m 755 $(STATEDIR); \
                echo Creating $(STATEDIR)/certs...; \
                $(INSTALL_DIR) -m 511 $(STATEDIR)/certs; \
-               chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs; \
+               chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs || true; \
        fi
        echo Creating $(LOGDIR)...
        $(INSTALL_DIR) -m 755 $(LOGDIR)
        fi
        echo Creating $(LOGDIR)...
        $(INSTALL_DIR) -m 755 $(LOGDIR)
@@ -324,5 +324,5 @@ include Dependencies
 
 
 #
 
 
 #
-# End of "$Id: Makefile 6692 2007-07-19 19:28:16Z mike $".
+# End of "$Id: Makefile 6802 2007-08-16 18:44:46Z mike $".
 #
 #
index 03f875be6d625123e2f2b9d7b49dfd891009ca85..3f5f724788078e3a5fa41e0e622b2cf41ec8c602 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: auth.c 6758 2007-08-02 00:13:44Z mike $"
+ * "$Id: auth.c 6949 2007-09-12 21:33:23Z mike $"
  *
  *   Authorization routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Authorization routines for the Common UNIX Printing System (CUPS).
  *
@@ -83,6 +83,9 @@
 extern const char *cssmErrorString(int error);
 #  endif /* HAVE_SECBASEPRIV_H */
 #endif /* HAVE_AUTHORIZATION_H */
 extern const char *cssmErrorString(int error);
 #  endif /* HAVE_SECBASEPRIV_H */
 #endif /* HAVE_AUTHORIZATION_H */
+#ifdef HAVE_SYS_PARAM_H
+#  include <sys/param.h>
+#endif /* HAVE_SYS_PARAM_H */
 #ifdef HAVE_SYS_UCRED_H
 #  include <sys/ucred.h>
 typedef struct xucred cupsd_ucred_t;
 #ifdef HAVE_SYS_UCRED_H
 #  include <sys/ucred.h>
 typedef struct xucred cupsd_ucred_t;
@@ -329,7 +332,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
   int          type;                   /* Authentication type */
   const char   *authorization;         /* Pointer into Authorization string */
   char         *ptr,                   /* Pointer into string */
   int          type;                   /* Authentication type */
   const char   *authorization;         /* Pointer into Authorization string */
   char         *ptr,                   /* Pointer into string */
-               username[65],           /* Username string */
+               username[256],          /* Username string */
                password[33];           /* Password string */
   const char   *localuser;             /* Certificate username */
   char         nonce[HTTP_MAX_VALUE],  /* Nonce value from client */
                password[33];           /* Password string */
   const char   *localuser;             /* Certificate username */
   char         nonce[HTTP_MAX_VALUE],  /* Nonce value from client */
@@ -372,28 +375,6 @@ cupsdAuthorize(cupsd_client_t *con)        /* I - Client connection */
     else
       type = con->best->type;
   }
     else
       type = con->best->type;
   }
-  else if (!strncmp(con->uri, "/printers/", 10) ||
-           !strncmp(con->uri, "/classes/", 9))
-  {
-   /*
-    * Lookup the printer or class and see what kind of authentication it
-    * needs...
-    */
-
-    cupsd_printer_t    *p;             /* Printer or class */
-
-
-    if (!strncmp(con->uri, "/printers/", 10))
-      p = cupsdFindDest(con->uri + 10);
-    else
-      p = cupsdFindDest(con->uri + 9);
-
-    if (p && p->num_auth_info_required > 0 &&
-        !strcmp(p->auth_info_required[0], "negotiate"))
-      type = AUTH_NEGOTIATE;
-    else
-      type = DefaultAuthType;       
-  }
   else
     type = DefaultAuthType;
 
   else
     type = DefaultAuthType;
 
@@ -936,7 +917,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
                    username);
   }
 #ifdef HAVE_GSSAPI
                    username);
   }
 #ifdef HAVE_GSSAPI
-  else if (!strncmp(authorization, "Negotiate", 9) && type == AUTH_NEGOTIATE
+  else if (!strncmp(authorization, "Negotiate", 9)) 
   {
     int                        len;            /* Length of authorization string */
     gss_cred_id_t      server_creds;   /* Server credentials */
   {
     int                        len;            /* Length of authorization string */
     gss_cred_id_t      server_creds;   /* Server credentials */
@@ -1064,8 +1045,6 @@ cupsdAuthorize(cupsd_client_t *con)       /* I - Client connection */
 
       gss_release_name(&minor_status, &client_name);
       strlcpy(username, output_token.value, sizeof(username));
 
       gss_release_name(&minor_status, &client_name);
       strlcpy(username, output_token.value, sizeof(username));
-      if ((ptr = strchr(username, '@')) != NULL)
-        *ptr = '\0';                   /* Strip @KDC from the username */
 
       cupsdLogMessage(CUPSD_LOG_DEBUG,
                      "cupsdAuthorize: Authorized as %s using Negotiate",
 
       cupsdLogMessage(CUPSD_LOG_DEBUG,
                      "cupsdAuthorize: Authorized as %s using Negotiate",
@@ -1818,7 +1797,9 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
   unsigned             address[4];     /* Authorization address */
   cupsd_location_t     *best;          /* Best match for location so far */
   int                  hostlen;        /* Length of hostname */
   unsigned             address[4];     /* Authorization address */
   cupsd_location_t     *best;          /* Best match for location so far */
   int                  hostlen;        /* Length of hostname */
-  const char           *username;      /* Username to authorize */
+  char                 username[256],  /* Username to authorize */
+                       ownername[256], /* Owner name to authorize */
+                       *ptr;           /* Pointer into username */
   struct passwd                *pw;            /* User password data */
   static const char * const levels[] = /* Auth levels */
                {
   struct passwd                *pw;            /* User password data */
   static const char * const levels[] = /* Auth levels */
                {
@@ -1998,7 +1979,7 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
       cupsdLogMessage(CUPSD_LOG_DEBUG,
                       "cupsdIsAuthorized: requesting-user-name=\"%s\"",
                       attr->values[0].string.text);
       cupsdLogMessage(CUPSD_LOG_DEBUG,
                       "cupsdIsAuthorized: requesting-user-name=\"%s\"",
                       attr->values[0].string.text);
-      username = attr->values[0].string.text;
+      strlcpy(username, attr->values[0].string.text, sizeof(username));
     }
     else if (best->satisfy == AUTH_SATISFY_ALL || auth == AUTH_DENY)
       return (HTTP_UNAUTHORIZED);      /* Non-anonymous needs user/pass */
     }
     else if (best->satisfy == AUTH_SATISFY_ALL || auth == AUTH_DENY)
       return (HTTP_UNAUTHORIZED);      /* Non-anonymous needs user/pass */
@@ -2022,7 +2003,7 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
        return (HTTP_OK);               /* unless overridden with Satisfy */
     }
 
        return (HTTP_OK);               /* unless overridden with Satisfy */
     }
 
-    username = con->username;
+    strlcpy(username, con->username, sizeof(username));
   }
 
  /*
   }
 
  /*
@@ -2033,6 +2014,23 @@ cupsdIsAuthorized(cupsd_client_t *con,   /* I - Connection */
   if (!strcmp(username, "root"))
     return (HTTP_OK);
 
   if (!strcmp(username, "root"))
     return (HTTP_OK);
 
+ /*
+  * Strip any @domain or @KDC from the username and owner...
+  */
+
+  if ((ptr = strchr(username, '@')) != NULL)
+    *ptr = '\0';
+
+  if (owner)
+  {
+    strlcpy(ownername, owner, sizeof(ownername));
+
+    if ((ptr = strchr(ownername, '@')) != NULL)
+      *ptr = '\0';
+  }
+  else
+    ownername[0] = '\0';
+
  /*
   * Get the user info...
   */
  /*
   * Get the user info...
   */
@@ -2088,7 +2086,7 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
     for (i = 0; i < best->num_names; i ++)
     {
       if (!strcasecmp(best->names[i], "@OWNER") && owner &&
     for (i = 0; i < best->num_names; i ++)
     {
       if (!strcasecmp(best->names[i], "@OWNER") && owner &&
-          !strcasecmp(username, owner))
+          !strcasecmp(username, ownername))
        return (HTTP_OK);
       else if (!strcasecmp(best->names[i], "@SYSTEM"))
       {
        return (HTTP_OK);
       else if (!strcasecmp(best->names[i], "@SYSTEM"))
       {
@@ -2670,5 +2668,5 @@ to64(char          *s,                    /* O - Output string */
 
 
 /*
 
 
 /*
- * End of "$Id: auth.c 6758 2007-08-02 00:13:44Z mike $".
+ * End of "$Id: auth.c 6949 2007-09-12 21:33:23Z mike $".
  */
  */
index 1eb5c422ebaabdce5656b9523026e2a298365d24..e3b83f3a8d3dd8a9befd7cb43600529ce9efa518 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: auth.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: auth.h 6780 2007-08-08 20:50:42Z mike $"
  *
  *   Authorization definitions for the Common UNIX Printing System (CUPS)
  *   scheduler.
  *
  *   Authorization definitions for the Common UNIX Printing System (CUPS)
  *   scheduler.
@@ -151,5 +151,5 @@ extern http_status_t        cupsdIsAuthorized(cupsd_client_t *con, const char *owner);
 
 
 /*
 
 
 /*
- * End of "$Id: auth.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: auth.h 6780 2007-08-08 20:50:42Z mike $".
  */
  */
index f8316a79e696c4c8bd436f7d02ab9c746b4877d6..f0a1225e51f9b8e85934249dd471b3b53141fd25 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: client.c 6758 2007-08-02 00:13:44Z mike $"
+ * "$Id: client.c 6799 2007-08-15 19:33:36Z mike $"
  *
  *   Client routines for the Common UNIX Printing System (CUPS) scheduler.
  *
  *
  *   Client routines for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -3228,12 +3228,15 @@ get_file(cupsd_client_t *con,           /* I  - Client connection */
   int          status;                 /* Status of filesystem calls */
   char         *ptr;                   /* Pointer info filename */
   int          plen;                   /* Remaining length after pointer */
   int          status;                 /* Status of filesystem calls */
   char         *ptr;                   /* Pointer info filename */
   int          plen;                   /* Remaining length after pointer */
+  char         language[7];            /* Language subdirectory, if any */
 
 
  /*
   * Figure out the real filename...
   */
 
 
 
  /*
   * Figure out the real filename...
   */
 
+  language[0] = '\0';
+
   if (!strncmp(con->uri, "/ppd/", 5))
     snprintf(filename, len, "%s%s", ServerRoot, con->uri);
   else if (!strncmp(con->uri, "/rss/", 5) && !strchr(con->uri + 5, '/'))
   if (!strncmp(con->uri, "/ppd/", 5))
     snprintf(filename, len, "%s%s", ServerRoot, con->uri);
   else if (!strncmp(con->uri, "/rss/", 5) && !strchr(con->uri + 5, '/'))
@@ -3252,8 +3255,10 @@ get_file(cupsd_client_t *con,            /* I  - Client connection */
       return (NULL);
   }
   else if (con->language)
       return (NULL);
   }
   else if (con->language)
-    snprintf(filename, len, "%s/%s%s", DocumentRoot, con->language->language,
-             con->uri);
+  {
+    snprintf(language, sizeof(language), "/%s", con->language->language);
+    snprintf(filename, len, "%s%s%s", DocumentRoot, language, con->uri);
+  }
   else
     snprintf(filename, len, "%s%s", DocumentRoot, con->uri);
 
   else
     snprintf(filename, len, "%s%s", DocumentRoot, con->uri);
 
@@ -3265,7 +3270,7 @@ get_file(cupsd_client_t *con,             /* I  - Client connection */
   * then fallback to the default one...
   */
 
   * then fallback to the default one...
   */
 
-  if ((status = stat(filename, filestats)) != 0 && con->language &&
+  if ((status = stat(filename, filestats)) != 0 && language[0] &&
       strncmp(con->uri, "/ppd/", 5) &&
       strncmp(con->uri, "/admin/conf/", 12) &&
       strncmp(con->uri, "/admin/log/", 11))
       strncmp(con->uri, "/ppd/", 5) &&
       strncmp(con->uri, "/admin/conf/", 12) &&
       strncmp(con->uri, "/admin/log/", 11))
@@ -3274,11 +3279,8 @@ get_file(cupsd_client_t *con,            /* I  - Client connection */
     * Drop the country code...
     */
 
     * Drop the country code...
     */
 
-    char       ll[3];                  /* Short language name */
-
-
-    strlcpy(ll, con->language->language, sizeof(ll));
-    snprintf(filename, len, "%s/%s%s", DocumentRoot, ll, con->uri);
+    language[3] = '\0';
+    snprintf(filename, len, "%s%s%s", DocumentRoot, language, con->uri);
 
     if ((ptr = strchr(filename, '?')) != NULL)
       *ptr = '\0';
 
     if ((ptr = strchr(filename, '?')) != NULL)
       *ptr = '\0';
@@ -3289,6 +3291,7 @@ get_file(cupsd_client_t *con,             /* I  - Client connection */
       * Drop the language prefix and try the root directory...
       */
 
       * Drop the language prefix and try the root directory...
       */
 
+      language[0] = '\0';
       snprintf(filename, len, "%s%s", DocumentRoot, con->uri);
 
       if ((ptr = strchr(filename, '?')) != NULL)
       snprintf(filename, len, "%s%s", DocumentRoot, con->uri);
 
       if ((ptr = strchr(filename, '?')) != NULL)
@@ -3304,52 +3307,86 @@ get_file(cupsd_client_t *con,           /* I  - Client connection */
 
   if (!status && S_ISDIR(filestats->st_mode))
   {
 
   if (!status && S_ISDIR(filestats->st_mode))
   {
-    if (filename[strlen(filename) - 1] != '/')
-      strlcat(filename, "/", len);
+   /*
+    * Make sure the URI ends with a slash...
+    */
 
 
-    ptr  = filename + strlen(filename);
-    plen = len - (ptr - filename);
+    if (con->uri[strlen(con->uri) - 1] != '/')
+      strlcat(con->uri, "/", sizeof(con->uri));
 
 
-    strlcpy(ptr, "index.html", plen);
-    status = stat(filename, filestats);
+   /*
+    * Find the directory index file, trying every language...
+    */
 
 
-#ifdef HAVE_JAVA
-    if (status)
+    do
     {
     {
-      strlcpy(ptr, "index.class", plen);
+      if (status && language[0])
+      {
+       /*
+        * Try a different language subset...
+       */
+
+       if (language[3])
+         language[0] = '\0';           /* Strip country code */
+       else
+         language[0] = '\0';           /* Strip language */
+      }
+
+     /*
+      * Look for the index file...
+      */
+
+      snprintf(filename, len, "%s%s%s", DocumentRoot, language, con->uri);
+
+      if ((ptr = strchr(filename, '?')) != NULL)
+       *ptr = '\0';
+
+      ptr  = filename + strlen(filename);
+      plen = len - (ptr - filename);
+
+      strlcpy(ptr, "index.html", plen);
       status = stat(filename, filestats);
       status = stat(filename, filestats);
-    }
+
+#ifdef HAVE_JAVA
+      if (status)
+      {
+       strlcpy(ptr, "index.class", plen);
+       status = stat(filename, filestats);
+      }
 #endif /* HAVE_JAVA */
 
 #ifdef HAVE_PERL
 #endif /* HAVE_JAVA */
 
 #ifdef HAVE_PERL
-    if (status)
-    {
-      strlcpy(ptr, "index.pl", plen);
-      status = stat(filename, filestats);
-    }
+      if (status)
+      {
+       strlcpy(ptr, "index.pl", plen);
+       status = stat(filename, filestats);
+      }
 #endif /* HAVE_PERL */
 
 #ifdef HAVE_PHP
 #endif /* HAVE_PERL */
 
 #ifdef HAVE_PHP
-    if (status)
-    {
-      strlcpy(ptr, "index.php", plen);
-      status = stat(filename, filestats);
-    }
+      if (status)
+      {
+       strlcpy(ptr, "index.php", plen);
+       status = stat(filename, filestats);
+      }
 #endif /* HAVE_PHP */
 
 #ifdef HAVE_PYTHON
 #endif /* HAVE_PHP */
 
 #ifdef HAVE_PYTHON
-    if (status)
-    {
-      strlcpy(ptr, "index.pyc", plen);
-      status = stat(filename, filestats);
-    }
+      if (status)
+      {
+       strlcpy(ptr, "index.pyc", plen);
+       status = stat(filename, filestats);
+      }
 
 
-    if (status)
-    {
-      strlcpy(ptr, "index.py", plen);
-      status = stat(filename, filestats);
-    }
+      if (status)
+      {
+       strlcpy(ptr, "index.py", plen);
+       status = stat(filename, filestats);
+      }
 #endif /* HAVE_PYTHON */
 #endif /* HAVE_PYTHON */
+
+    }
+    while (status && language[0]);
   }
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_file: %d filename=%s size=%d",
   }
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_file: %d filename=%s size=%d",
@@ -4577,5 +4614,5 @@ write_pipe(cupsd_client_t *con)           /* I - Client connection */
 
 
 /*
 
 
 /*
- * End of "$Id: client.c 6758 2007-08-02 00:13:44Z mike $".
+ * End of "$Id: client.c 6799 2007-08-15 19:33:36Z mike $".
  */
  */
index f3c0f3a326d55425f9f95ee3327a6aed141e66a4..baeef5f6589b8af57c07fe6eeb284e6a6a721fae 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: client.h 6758 2007-08-02 00:13:44Z mike $"
+ * "$Id: client.h 6949 2007-09-12 21:33:23Z mike $"
  *
  *   Client definitions for the Common UNIX Printing System (CUPS) scheduler.
  *
  *
  *   Client definitions for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -30,7 +30,7 @@ struct cupsd_client_s
   time_t               start;          /* Request start time */
   http_state_t         operation;      /* Request operation */
   off_t                        bytes;          /* Bytes transferred for this request */
   time_t               start;          /* Request start time */
   http_state_t         operation;      /* Request operation */
   off_t                        bytes;          /* Bytes transferred for this request */
-  char                 username[33],   /* Username from Authorization: line */
+  char                 username[256],  /* Username from Authorization: line */
                        password[33],   /* Password from Authorization: line */
                        uri[HTTP_MAX_URI],
                                        /* Localized URL/URI for GET/PUT */
                        password[33],   /* Password from Authorization: line */
                        uri[HTTP_MAX_URI],
                                        /* Localized URL/URI for GET/PUT */
@@ -131,5 +131,5 @@ extern void cupsdWriteClient(cupsd_client_t *con);
 
 
 /*
 
 
 /*
- * End of "$Id: client.h 6758 2007-08-02 00:13:44Z mike $".
+ * End of "$Id: client.h 6949 2007-09-12 21:33:23Z mike $".
  */
  */
index 26d6037bfac872dad9e3a2a1774e2e672847df7d..b081c3f9d6881f3a01b639703158d7882678878f 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: conf.c 6746 2007-07-30 16:47:10Z mike $"
+ * "$Id: conf.c 6783 2007-08-10 19:48:57Z mike $"
  *
  *   Configuration routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Configuration routines for the Common UNIX Printing System (CUPS).
  *
@@ -3352,5 +3352,5 @@ read_policy(cups_file_t *fp,              /* I - Configuration file */
 
 
 /*
 
 
 /*
- * End of "$Id: conf.c 6746 2007-07-30 16:47:10Z mike $".
+ * End of "$Id: conf.c 6783 2007-08-10 19:48:57Z mike $".
  */
  */
index 1ed66c8a968f08891972b119ab0c7660dc07e2cf..5f242447af55ba7ff647d74899634d9a2f184003 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: cups-driverd.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cups-driverd.c 6762 2007-08-02 18:05:03Z mike $"
  *
  *   PPD/driver support for the Common UNIX Printing System (CUPS).
  *
  *
  *   PPD/driver support for the Common UNIX Printing System (CUPS).
  *
@@ -1702,5 +1702,5 @@ load_drivers(void)
 
 
 /*
 
 
 /*
- * End of "$Id: cups-driverd.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cups-driverd.c 6762 2007-08-02 18:05:03Z mike $".
  */
  */
index 5359fb9b532c332c3a8844a5429afb5d301aaaf7..360ceb659d6b870b1e1ab066dc7eacaf224bc4ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: cups-lpd.c 6723 2007-07-25 17:29:58Z mike $"
+ * "$Id: cups-lpd.c 6781 2007-08-08 21:09:31Z mike $"
  *
  *   Line Printer Daemon interface for the Common UNIX Printing System (CUPS).
  *
  *
  *   Line Printer Daemon interface for the Common UNIX Printing System (CUPS).
  *
@@ -1702,5 +1702,5 @@ smart_gets(char *s,                       /* I - Pointer to line buffer */
 
 
 /*
 
 
 /*
- * End of "$Id: cups-lpd.c 6723 2007-07-25 17:29:58Z mike $".
+ * End of "$Id: cups-lpd.c 6781 2007-08-08 21:09:31Z mike $".
  */
  */
index f69aa820f31ac741a2dcc7bcdb833dcb0c68017f..713a0f1cd36c31e520da0b7a6dd6a5405cec3cfb 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: cupsfilter.c 6695 2007-07-19 21:59:30Z mike $"
+ * "$Id: cupsfilter.c 6816 2007-08-20 20:16:00Z mike $"
  *
  *   CUPS filtering program for the Common UNIX Printing System (CUPS).
  *
  *
  *   CUPS filtering program for the Common UNIX Printing System (CUPS).
  *
@@ -76,8 +76,9 @@ static int    exec_filter(const char *filter, char **argv, char **envp,
                            int infd, int outfd);
 static int     exec_filters(cups_array_t *filters, const char *infile,
                             const char *outfile, const char *ppdfile,
                            int infd, int outfd);
 static int     exec_filters(cups_array_t *filters, const char *infile,
                             const char *outfile, const char *ppdfile,
-                            const char *user, const char *title,
-                            int num_options, cups_option_t *options);
+                            const char *printer, const char *user,
+                            const char *title, int num_options,
+                            cups_option_t *options);
 static int     open_pipe(int *fds);
 static int     read_cupsd_conf(const char *filename);
 static void    set_string(char **s, const char *val);
 static int     open_pipe(int *fds);
 static int     read_cupsd_conf(const char *filename);
 static void    set_string(char **s, const char *val);
@@ -396,8 +397,9 @@ main(int  argc,                             /* I - Number of command-line args */
   * Do it!
   */
 
   * Do it!
   */
 
-  status = exec_filters(filters, infile, outfile, ppdfile, user, title,
-                        num_options, options);
+  status = exec_filters(filters, infile, outfile, ppdfile,
+                        !strcmp(command, "convert") ? "tofile" : "cupsfilter",
+                       user, title, num_options, options);
 
  /*
   * Remove files as needed, then exit...
 
  /*
   * Remove files as needed, then exit...
@@ -590,6 +592,7 @@ exec_filters(cups_array_t  *filters,        /* I - Array of filters to run */
              const char    *infile,    /* I - File to filter */
             const char    *outfile,    /* I - File to create */
             const char    *ppdfile,    /* I - PPD file, if any */
              const char    *infile,    /* I - File to filter */
             const char    *outfile,    /* I - File to create */
             const char    *ppdfile,    /* I - PPD file, if any */
+            const char    *printer,    /* I - Printer name */
             const char    *user,       /* I - Username */
             const char    *title,      /* I - Job title */
              int           num_options,        /* I - Number of filter options */
             const char    *user,       /* I - Username */
             const char    *title,      /* I - Job title */
              int           num_options,        /* I - Number of filter options */
@@ -643,17 +646,24 @@ exec_filters(cups_array_t  *filters,      /* I - Array of filters to run */
     snprintf(ppd, sizeof(ppd), "PPD=%s", temp);
   else
 #ifdef __APPLE__
     snprintf(ppd, sizeof(ppd), "PPD=%s", temp);
   else
 #ifdef __APPLE__
+  if (!access("/System/Library/Frameworks/ApplicationServices.framework/"
+             "Versions/A/Frameworks/PrintCore.framework/Versions/A/"
+             "Resources/English.lproj/Generic.ppd", 0))
     strlcpy(ppd, "PPD=/System/Library/Frameworks/ApplicationServices.framework/"
                  "Versions/A/Frameworks/PrintCore.framework/Versions/A/"
                 "Resources/English.lproj/Generic.ppd", sizeof(ppd));
     strlcpy(ppd, "PPD=/System/Library/Frameworks/ApplicationServices.framework/"
                  "Versions/A/Frameworks/PrintCore.framework/Versions/A/"
                 "Resources/English.lproj/Generic.ppd", sizeof(ppd));
+  else
+    strlcpy(ppd, "PPD=/System/Library/Frameworks/ApplicationServices.framework/"
+                 "Versions/A/Frameworks/PrintCore.framework/Versions/A/"
+                "Resources/Generic.ppd", sizeof(ppd));
 #else
     snprintf(ppd, sizeof(ppd), "PPD=%s/model/laserjet.ppd", DataDir);
 #endif /* __APPLE__ */
   snprintf(rip_cache, sizeof(rip_cache), "RIP_CACHE=%s", RIPCache);
   snprintf(userenv, sizeof(userenv), "USER=%s", user);
 
 #else
     snprintf(ppd, sizeof(ppd), "PPD=%s/model/laserjet.ppd", DataDir);
 #endif /* __APPLE__ */
   snprintf(rip_cache, sizeof(rip_cache), "RIP_CACHE=%s", RIPCache);
   snprintf(userenv, sizeof(userenv), "USER=%s", user);
 
-  argv[0] = "cupsfilter";
-  argv[1] = "0";
+  argv[0] = (char *)printer;
+  argv[1] = "1";
   argv[2] = user;
   argv[3] = title;
   argv[4] = cupsGetOption("copies", num_options, options);
   argv[2] = user;
   argv[3] = title;
   argv[4] = cupsGetOption("copies", num_options, options);
@@ -982,5 +992,5 @@ usage(const char *command,          /* I - Command name */
 
 
 /*
 
 
 /*
- * End of "$Id: cupsfilter.c 6695 2007-07-19 21:59:30Z mike $".
+ * End of "$Id: cupsfilter.c 6816 2007-08-20 20:16:00Z mike $".
  */
  */
index fd8c797dbce25d1bf37ee4894fc242a537e94300..b65fe63066cc876bc5aa1e7d82726e420cfcc7f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: ipp.c 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: ipp.c 6949 2007-09-12 21:33:23Z mike $"
  *
  *   IPP routines for the Common UNIX Printing System (CUPS) scheduler.
  *
  *
  *   IPP routines for the Common UNIX Printing System (CUPS) scheduler.
  *
 
 #include "cupsd.h"
 
 
 #include "cupsd.h"
 
-#ifdef HAVE_KRB5_H
-#  include <krb5.h>
-#endif /* HAVE_KRB5_H */
-
 #ifdef HAVE_LIBPAPER
 #  include <paper.h>
 #endif /* HAVE_LIBPAPER */
 #ifdef HAVE_LIBPAPER
 #  include <paper.h>
 #endif /* HAVE_LIBPAPER */
@@ -2877,8 +2873,22 @@ authenticate_job(cupsd_client_t  *con,   /* I - Client connection */
 
   if (!con->username[0] && !auth_info)
   {
 
   if (!con->username[0] && !auth_info)
   {
-    send_ipp_status(con, IPP_NOT_AUTHORIZED,
-                    _("No authentication information provided!"));
+    cupsd_printer_t    *printer;       /* Job destination */
+
+
+   /*
+    * No auth data.  If we need to authenticate via Kerberos, send a
+    * HTTP auth challenge, otherwise just return an IPP error...
+    */
+
+    printer = cupsdFindDest(job->dest);
+
+    if (printer && printer->num_auth_info_required > 0 &&
+        !strcmp(printer->auth_info_required[0], "negotiate"))
+      send_http_error(con, HTTP_UNAUTHORIZED, printer);
+    else
+      send_ipp_status(con, IPP_NOT_AUTHORIZED,
+                     _("No authentication information provided!"));
     return;
   }
 
     return;
   }
 
@@ -8262,9 +8272,12 @@ save_krb5_creds(cupsd_client_t *con,     /* I - Client connection */
   return;
 
 #  else
   return;
 
 #  else
-  krb5_error_code error;               /* Kerberos error code */
-  OM_uint32    major_status,           /* Major status code */
-               minor_status;           /* Minor status code */
+  krb5_error_code      error;          /* Kerberos error code */
+  OM_uint32            major_status,   /* Major status code */
+                       minor_status;   /* Minor status code */
+#    ifdef HAVE_KRB5_CC_NEW_UNIQUE
+  krb5_principal       principal;      /* Kerberos principal */
+#    endif /* HAVE_KRB5_CC_NEW_UNIQUE */
 
 
 #   ifdef __APPLE__
 
 
 #   ifdef __APPLE__
@@ -8297,12 +8310,35 @@ save_krb5_creds(cupsd_client_t *con,    /* I - Client connection */
                                &(job->ccache))) != 0)
 #    endif /* HAVE_KRB5_CC_NEW_UNIQUE */
   {
                                &(job->ccache))) != 0)
 #    endif /* HAVE_KRB5_CC_NEW_UNIQUE */
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create new credentials (%d/%s)",
+    cupsdLogMessage(CUPSD_LOG_ERROR,
+                    "Unable to create new credentials cache (%d/%s)",
                     error, strerror(errno));
     job->ccache = NULL;
     return;
   }
 
                     error, strerror(errno));
     job->ccache = NULL;
     return;
   }
 
+  if ((error = krb5_parse_name(KerberosContext, con->username, &principal)) != 0)
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to parse kerberos username (%d/%s)",
+                    error, strerror(errno));
+    krb5_cc_destroy(KerberosContext, job->ccache);
+    job->ccache = NULL;
+    return;
+  }
+
+  if ((error = krb5_cc_initialize(KerberosContext, job->ccache, principal)))
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR,
+                    "Unable to initialize credentials cache (%d/%s)", error,
+                   strerror(errno));
+    krb5_cc_destroy(KerberosContext, job->ccache);
+    krb5_free_principal(KerberosContext, principal);
+    job->ccache = NULL;
+    return;
+  }
+
+  krb5_free_principal(KerberosContext, principal);
+
  /*
   * Copy the user's credentials to the new cache file...
   */
  /*
   * Copy the user's credentials to the new cache file...
   */
@@ -9893,5 +9929,5 @@ validate_user(cupsd_job_t    *job,        /* I - Job */
 
 
 /*
 
 
 /*
- * End of "$Id: ipp.c 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: ipp.c 6949 2007-09-12 21:33:23Z mike $".
  */
  */
index ed1982c9c4e5ec1b0089776b62b825f203c72295..aecad497e0d8d49846d1648eab15b01909583b3a 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: job.c 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: job.c 6887 2007-08-29 21:52:06Z mike $"
  *
  *   Job management routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Job management routines for the Common UNIX Printing System (CUPS).
  *
@@ -2843,7 +2843,11 @@ start_job(cupsd_job_t     *job,          /* I - Job ID */
           !strcmp(attr->name, "page-ranges") ||
           !strcmp(attr->name, "page-set") ||
           !strcasecmp(attr->name, "AP_FIRSTPAGE_InputSlot") ||
           !strcmp(attr->name, "page-ranges") ||
           !strcmp(attr->name, "page-set") ||
           !strcasecmp(attr->name, "AP_FIRSTPAGE_InputSlot") ||
-          !strcasecmp(attr->name, "AP_FIRSTPAGE_ManualFeed")) &&
+          !strcasecmp(attr->name, "AP_FIRSTPAGE_ManualFeed") ||
+          !strcasecmp(attr->name, "com.apple.print.PrintSettings."
+                                  "PMTotalSidesImaged..n.") ||
+          !strcasecmp(attr->name, "com.apple.print.PrintSettings."
+                                  "PMTotalBeginPages..n.")) &&
          banner_page)
         continue;
 
          banner_page)
         continue;
 
@@ -3784,5 +3788,5 @@ update_job_attrs(cupsd_job_t *job)        /* I - Job to update */
 
 
 /*
 
 
 /*
- * End of "$Id: job.c 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: job.c 6887 2007-08-29 21:52:06Z mike $".
  */
  */
index 0a3158db40fc88ee946419424e610c6b116439ca..931bc9de1d566332cdbfe135b0d81798627f9794 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: listen.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: listen.c 6788 2007-08-13 17:20:14Z mike $"
  *
  *   Server listening routines for the Common UNIX Printing System (CUPS)
  *   scheduler.
  *
  *   Server listening routines for the Common UNIX Printing System (CUPS)
  *   scheduler.
@@ -428,5 +428,5 @@ cupsdStopListening(void)
 
 
 /*
 
 
 /*
- * End of "$Id: listen.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: listen.c 6788 2007-08-13 17:20:14Z mike $".
  */
  */
index f9f1ba9b143e044906a6c1ddfd166f8b9e12268a..6b4d83993387b2c8edf59ab0ffcf15d36529b280 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: main.c 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: main.c 6915 2007-09-05 21:05:17Z mike $"
  *
  *   Scheduler main loop for the Common UNIX Printing System (CUPS).
  *
  *
  *   Scheduler main loop for the Common UNIX Printing System (CUPS).
  *
@@ -152,6 +152,18 @@ main(int  argc,                            /* I - Number of command-line args */
 #endif /* HAVE_LAUNCHD */
 
 
 #endif /* HAVE_LAUNCHD */
 
 
+#ifdef HAVE_GETEUID
+ /*
+  * Check for setuid invocation, which we do not support!
+  */
+
+  if (getuid() != geteuid())
+  {
+    fputs("cupsd: Cannot run as a setuid program!\n", stderr);
+    return (1);
+  }
+#endif /* HAVE_GETEUID */
+
  /*
   * Check for command-line arguments...
   */
  /*
   * Check for command-line arguments...
   */
@@ -1880,5 +1892,5 @@ usage(int status)                 /* O - Exit status */
 
 
 /*
 
 
 /*
- * End of "$Id: main.c 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: main.c 6915 2007-09-05 21:05:17Z mike $".
  */
  */
index 5e0933f15f6ce92917c259ade8042415de6722c9..06c9800c4334011d545c6c0d9fd12e0f0f0bfd15 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: process.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: process.c 6783 2007-08-10 19:48:57Z mike $"
  *
  *   Process management routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Process management routines for the Common UNIX Printing System (CUPS).
  *
@@ -349,5 +349,5 @@ compare_procs(cupsd_proc_t *a,              /* I - First process */
 
 
 /*
 
 
 /*
- * End of "$Id: process.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: process.c 6783 2007-08-10 19:48:57Z mike $".
  */
  */
index a9bfd01639303d77fbb5f30a692c63758f4bc29b..2a21d83ddc9926c7681ebe015937c1f65d7d47bc 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: quotas.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: quotas.c 6949 2007-09-12 21:33:23Z mike $"
  *
  *   Quota routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Quota routines for the Common UNIX Printing System (CUPS).
  *
@@ -48,12 +48,15 @@ cupsdFindQuota(
 {
   cupsd_quota_t        *q,                     /* Quota data pointer */
                match;                  /* Search data */
 {
   cupsd_quota_t        *q,                     /* Quota data pointer */
                match;                  /* Search data */
+  char         *ptr;                   /* Pointer into username */
 
 
   if (!p || !username)
     return (NULL);
 
   strlcpy(match.username, username, sizeof(match.username));
 
 
   if (!p || !username)
     return (NULL);
 
   strlcpy(match.username, username, sizeof(match.username));
+  if ((ptr = strchr(match.username, '@')) != NULL)
+    *ptr = '\0';                       /* Strip @domain/@KDC */
 
   if ((q = (cupsd_quota_t *)cupsArrayFind(p->quotas, &match)) != NULL)
     return (q);
 
   if ((q = (cupsd_quota_t *)cupsArrayFind(p->quotas, &match)) != NULL)
     return (q);
@@ -199,6 +202,7 @@ add_quota(cupsd_printer_t *p,               /* I - Printer */
           const char      *username)   /* I - User */
 {
   cupsd_quota_t        *q;                     /* New quota data */
           const char      *username)   /* I - User */
 {
   cupsd_quota_t        *q;                     /* New quota data */
+  char         *ptr;                   /* Pointer into username */
 
 
   if (!p || !username)
 
 
   if (!p || !username)
@@ -214,6 +218,8 @@ add_quota(cupsd_printer_t *p,               /* I - Printer */
     return (NULL);
 
   strlcpy(q->username, username, sizeof(q->username));
     return (NULL);
 
   strlcpy(q->username, username, sizeof(q->username));
+  if ((ptr = strchr(q->username, '@')) != NULL)
+    *ptr = '\0';                       /* Strip @domain/@KDC */
 
   cupsArrayAdd(p->quotas, q);
 
 
   cupsArrayAdd(p->quotas, q);
 
@@ -234,5 +240,5 @@ compare_quotas(const cupsd_quota_t *q1,     /* I - First quota record */
 
 
 /*
 
 
 /*
- * End of "$Id: quotas.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: quotas.c 6949 2007-09-12 21:33:23Z mike $".
  */
  */
index fbc99e10c49eb1e0a73cde12b7f958e00fd93264..e7527339de85fe8ee2108f3362c1b024d32701cb 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: testlpd.c 6705 2007-07-20 22:25:31Z mike $"
+ * "$Id: testlpd.c 6789 2007-08-13 19:52:43Z mike $"
  *
  *   cups-lpd test program for the Common UNIX Printing System (CUPS).
  *
  *
  *   cups-lpd test program for the Common UNIX Printing System (CUPS).
  *
@@ -550,5 +550,5 @@ usage(void)
 
 
 /*
 
 
 /*
- * End of "$Id: testlpd.c 6705 2007-07-20 22:25:31Z mike $".
+ * End of "$Id: testlpd.c 6789 2007-08-13 19:52:43Z mike $".
  */
  */
index 09a361b99c481b5989650847fdd7963c1b20b930..4a44f4e199eaff6a6fad80a0543b69725377f607 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: cupstestppd.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cupstestppd.c 6928 2007-09-07 18:05:14Z mike $"
  *
  *   PPD test program for the Common UNIX Printing System (CUPS).
  *
  *
  *   PPD test program for the Common UNIX Printing System (CUPS).
  *
@@ -981,7 +981,8 @@ main(int  argc,                             /* I - Number of command-line args */
          else
            ydpi = xdpi;
 
          else
            ydpi = xdpi;
 
-         if (xdpi <= 0 || ydpi <= 0 || strcmp(ptr, "dpi"))
+         if (xdpi <= 0 || xdpi > 99999 || ydpi <= 0 || ydpi > 99999 ||
+             strcmp(ptr, "dpi"))
          {
            if (verbose >= 0)
            {
          {
            if (verbose >= 0)
            {
@@ -2393,8 +2394,30 @@ test_raster(ppd_file_t *ppd,             /* I - PPD file */
 
     return (0);
   }
 
     return (0);
   }
-  else
+
+ /*
+  * Try a test of custom page size code, if available...
+  */
+
+  if (!ppdPageSize(ppd, "Custom.612x792"))
     return (1);
     return (1);
+
+  ppdMarkOption(ppd, "PageSize", "Custom.612x792");
+
+  if (cupsRasterInterpretPPD(&header, ppd, 0, NULL, 0))
+  {
+    if (!verbose)
+      _cupsLangPuts(stdout, _(" FAIL\n"));
+
+    if (verbose >= 0)
+      _cupsLangPrintf(stdout,
+                     _("      **FAIL**  Default option code cannot be "
+                       "interpreted: %s\n"), cupsRasterErrorString());
+
+    return (0);
+  }
+
+  return (1);
 }
 
 
 }
 
 
@@ -2501,5 +2524,5 @@ valid_utf8(const char *s)         /* I - String to check */
 
 
 /*
 
 
 /*
- * End of "$Id: cupstestppd.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cupstestppd.c 6928 2007-09-07 18:05:14Z mike $".
  */
  */
index ffa5ba73bb9abf3e9a0d818b178eff3b2376b15a..709ac3e2a1206c2c31c8e11437e53d215b521ff8 100644 (file)
@@ -6,8 +6,8 @@
 <P>
 <A HREF="/admin?op=add-printer"><IMG
 SRC="/images/button-add-printer.gif" ALT="Drucker hinzuf&uuml;gen" CLASS="button"></A>
 <P>
 <A HREF="/admin?op=add-printer"><IMG
 SRC="/images/button-add-printer.gif" ALT="Drucker hinzuf&uuml;gen" CLASS="button"></A>
-<A HREF="/admin?op=list-available-printers"><IMG
-SRC="/images/button-list-available-printers.gif"
+<A HREF="/admin?op=find-new-printers"><IMG
+SRC="/images/button-find-new-printers.gif"
 ALT="Verfügbare Drucker auflisten" CLASS="button"></A>
 <A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
 ALT="Drucker verwalten" CLASS="button"></A>
 ALT="Verfügbare Drucker auflisten" CLASS="button"></A>
 <A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
 ALT="Drucker verwalten" CLASS="button"></A>
index 2f03f48d4f198929d8636e0c35e36c41eb41fa48..079885754b3056e8d79af47af80d904391b6004c 100644 (file)
@@ -6,6 +6,9 @@
 <P>
 <A HREF="/admin?op=add-printer"><IMG
 SRC="/images/button-add-printer.gif" ALT="A&ntilde;adir impresora" CLASS="button"></A>
 <P>
 <A HREF="/admin?op=add-printer"><IMG
 SRC="/images/button-add-printer.gif" ALT="A&ntilde;adir impresora" CLASS="button"></A>
+<A HREF="/admin?op=find-new-printers"><IMG
+SRC="/images/button-find-new-printers.gif"
+ALT="Encontrar nuevas impresoras" CLASS="button"></A>
 <A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
 ALT="Administrar impresoras" CLASS="button"></A>
 {have_samba?<A HREF="/admin/?op=export-samba"><IMG
 <A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
 ALT="Administrar impresoras" CLASS="button"></A>
 {have_samba?<A HREF="/admin/?op=export-samba"><IMG
@@ -13,13 +16,6 @@ SRC="/images/button-export-samba.gif" ALT="Exportar impresoras a Samba"
 CLASS="button"></A>:}
 </P>
 
 CLASS="button"></A>:}
 </P>
 
-{#device_uri=0?:<P><B>Encontradas nuevas impresoras:</B></P><UL>{[device_uri]
-<LI><A HREF="/admin?op=add-printer&amp;{device_options}"><IMG
-SRC="/images/button-add-this-printer.gif" ALT="A&ntilde;adir esta impresora"
-CLASS="button" ALIGN="MIDDLE"></A>
-{device_make_and_model} ({device_info})</LI>
-}</UL>}
-
 <H2 CLASS="title">Clases</H2>
 
 <P>
 <H2 CLASS="title">Clases</H2>
 
 <P>
@@ -67,7 +63,7 @@ CLASS="button"></A>
 <INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Compartir impresoras p&uacute;blicas conectadas a este sistema<BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Allow printing from the Internet<BR>
 <INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Permitir administraci&oacute;n remota<BR>
 <INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Compartir impresoras p&uacute;blicas conectadas a este sistema<BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Allow printing from the Internet<BR>
 <INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Permitir administraci&oacute;n remota<BR>
-{have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" {?kerberos}> Use Kerberos authentication<BR>:}
+{have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" {?kerberos}> Usar autentificaci&oacute;n Kerberos (<A HREF="/help/kerberos.html?TOPIC=Getting+Started">FAQ</A>)<BR>:}
 <INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Permitir a los usuarios cancelar cualquier trabajo (no s&oacute;lo los suyos propios)<BR>
 <INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Guardar informaci&oacute;n de depuraci&oacute;n para b&uacute;squeda de problemas</P>
 
 <INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Permitir a los usuarios cancelar cualquier trabajo (no s&oacute;lo los suyos propios)<BR>
 <INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Guardar informaci&oacute;n de depuraci&oacute;n para b&uacute;squeda de problemas</P>
 
@@ -77,3 +73,16 @@ CLASS="button"></A>
 
 </TD></TR>
 </TABLE>
 
 </TD></TR>
 </TABLE>
+
+<H2 CLASS="title">Subscripciones</H2>
+
+<P>
+<A HREF="/admin/?op=add-rss-subscription"><IMG SRC="/images/button-add-rss-subscription.gif" ALT="A&ntilde;adir subscripci&oacute;n RSS" CLASS="button"></A>
+</P>
+
+{notify_subscription_id?<TABLE WIDTH="100%" CELLSPACING="0" CELLPADDING="0" SUMMARY="Subscripciones RSS">
+<THEAD><TR CLASS="data"><TH>ID</TH><TH>Nombre</TH><TH>Eventos</TH><TH>Cola</TH></TR></THEAD>
+<TBODY>{[notify_subscription_id]
+<TR><TD><A HREF="{notify_recipient_uri}">{notify_subscription_id}</A></TD><TD NOWRAP><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A> <A HREF="/admin/?op=cancel-subscription&amp;notify_subscription_id={notify_subscription_id}"><IMG SRC="/images/button-cancel-subscription.gif" CLASS="button" ALT="Cancelar subscripci&oacute;n RSS"></A>&nbsp;</TD><TD>{notify_events}</TD><TD NOWRAP>&nbsp;{notify_printer_name?{notify_printer_name}:Todas las colas}</TD></TR>}
+</TBODY>
+</TABLE>:}
index 43de08d2a63bea97cff575c05fd166aa4861af3a..da4d75bc4a97d8b3da5d6a5db64480ba1b5358ae 100644 (file)
 {printer_is_accepting_jobs=0?rechazando trabajos:aceptando trabajos}, {printer_is_shared=0?no:} p&uacute;blica.
 {?member_uris=?:<BR>Miembros: {member_uris}}
 
 {printer_is_accepting_jobs=0?rechazando trabajos:aceptando trabajos}, {printer_is_shared=0?no:} p&uacute;blica.
 {?member_uris=?:<BR>Miembros: {member_uris}}
 
-<P>
+<P><TABLE WIDTH="100%" CELLPADDING="5" SUMMARY="Acciones">
+<TR VALIGN="TOP"><TD>
 <A HREF="{printer_uri_supported}?op=print-test-page">
 <A HREF="{printer_uri_supported}?op=print-test-page">
-<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir p&aacute;gina de prueba" CLASS="button"></A>
-{printer_state=5?
+<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir p&aacute;gina de prueba" CLASS="button"></A></TD>
+<TD>{printer_state=5?
 <A HREF="{admin_uri}?op=start-class&amp;printer_name={%printer_name}&amp;is_class=Y">
 <IMG SRC="/images/button-start-class.gif" ALT="Iniciar clase" CLASS="button"></A>
 :
 <A HREF="{admin_uri}?op=start-class&amp;printer_name={%printer_name}&amp;is_class=Y">
 <IMG SRC="/images/button-start-class.gif" ALT="Iniciar clase" CLASS="button"></A>
 :
@@ -31,8 +32,8 @@
 <IMG SRC="/images/button-reject-jobs.gif" ALT="Rechazar trabajos" CLASS="button"></A>
 }
 <A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
 <IMG SRC="/images/button-reject-jobs.gif" ALT="Rechazar trabajos" CLASS="button"></A>
 }
 <A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A>
-{printer_is_shared=0?
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A></TD>
+<TD>{printer_is_shared=0?
 <A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1&amp;is_class=Y">
 <IMG SRC="/images/button-publish-printer.gif" ALT="Publicar impresora" CLASS="button"></A>
 :
 <A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1&amp;is_class=Y">
 <IMG SRC="/images/button-publish-printer.gif" ALT="Publicar impresora" CLASS="button"></A>
 :
 }
 <A HREF="{admin_uri}?op=modify-class&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-modify-class.gif" ALT="Modificar clase" CLASS="button"></A>
 }
 <A HREF="{admin_uri}?op=modify-class&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-modify-class.gif" ALT="Modificar clase" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-class-options&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-set-printer-options.gif" ALT="Cambiar opciones impresora" CLASS="button"></A>
 <A HREF="{admin_uri}?op=delete-class&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-delete-class.gif" ALT="Borrar clase" CLASS="button"></A>
 <A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}&amp;is_class=Y">
 <IMG SRC="/images/button-set-as-default.gif" ALT="Poner como predeterminada" CLASS="button"></A>
 <A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}&amp;is_class=Y">
 <IMG SRC="/images/button-set-allowed-users.gif" ALT="Establecer usuarios permitidos" CLASS="button"></A>
 <A HREF="{admin_uri}?op=delete-class&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-delete-class.gif" ALT="Borrar clase" CLASS="button"></A>
 <A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}&amp;is_class=Y">
 <IMG SRC="/images/button-set-as-default.gif" ALT="Poner como predeterminada" CLASS="button"></A>
 <A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}&amp;is_class=Y">
 <IMG SRC="/images/button-set-allowed-users.gif" ALT="Establecer usuarios permitidos" CLASS="button"></A>
-</P>
+</TR>
+</TABLE></P>
 </TD>
 </TR>
 </TABLE>
 </TD>
 </TR>
 </TABLE>
index db65caef3d0ab582bbf7f043b5aedb858eecef7c..5a3eba12a692dae78a284af6d39a1d2af2b957b5 100644 (file)
@@ -1 +1 @@
-<P>Se ha configurado con &eacute;xito la impresora <A HREF="/printers/{printer_name}">{printer_name}</A>.
+<P>Se ha configurado con &eacute;xito la {OP=set-class-options?clase <A HREF="/classes/{printer_name}">:impresora <A HREF="/printers/{printer_name}">}</A>.
index 2366f44418b7e874f85659a883033ecf23ad4c3e..bba86986c63b2f6714b98b40a2724aab882e8383 100644 (file)
 {printer_is_accepting_jobs=0?rechazando trabajos:aceptando trabajos}, {printer_is_shared=0?no:} p&uacute;blica.
 {?device_uri=?:<BR><B>URI de la conexi&oacute;n:</B> {device_uri}}
 
 {printer_is_accepting_jobs=0?rechazando trabajos:aceptando trabajos}, {printer_is_shared=0?no:} p&uacute;blica.
 {?device_uri=?:<BR><B>URI de la conexi&oacute;n:</B> {device_uri}}
 
-<P>
+<P><TABLE WIDTH="100%" CELLPADDING="5" SUMMARY="Acciones">
+<TR VALIGN="TOP"><TD>
 <A HREF="{printer_uri_supported}?op=print-test-page">
 <IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir p&aacute;gina de prueba" CLASS="button"></A>
 {?cupscommand=1?<A HREF="{printer_uri_supported}?op=clean-print-heads">
 <IMG SRC="/images/button-clean-print-heads.gif" ALT="Limpiar cabezales de impresi&oacute;n" CLASS="button"></A>
 <A HREF="{printer_uri_supported}?op=print-self-test-page">
 <A HREF="{printer_uri_supported}?op=print-test-page">
 <IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir p&aacute;gina de prueba" CLASS="button"></A>
 {?cupscommand=1?<A HREF="{printer_uri_supported}?op=clean-print-heads">
 <IMG SRC="/images/button-clean-print-heads.gif" ALT="Limpiar cabezales de impresi&oacute;n" CLASS="button"></A>
 <A HREF="{printer_uri_supported}?op=print-self-test-page">
-<IMG SRC="/images/button-print-self-test-page.gif" ALT="Imprimir p&aacute;gina de auto-prueba" CLASS="button"></A>:}
+<IMG SRC="/images/button-print-self-test-page.gif" ALT="Imprimir p&aacute;gina de auto-prueba" CLASS="button"></A>:}</TD>
 {printer_state=5?
 <A HREF="{admin_uri}?op=start-printer&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-start-printer.gif" ALT="Iniciar impresora" CLASS="button"></A>
 {printer_state=5?
 <A HREF="{admin_uri}?op=start-printer&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-start-printer.gif" ALT="Iniciar impresora" CLASS="button"></A>
@@ -39,8 +40,8 @@
 <A HREF="{printer_uri_supported}?op=move-jobs&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-move-jobs.gif" ALT="Mover todos los trabajos" CLASS="button"></A>
 <A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}">
 <A HREF="{printer_uri_supported}?op=move-jobs&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-move-jobs.gif" ALT="Mover todos los trabajos" CLASS="button"></A>
 <A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A>
-{printer_is_shared=0?
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A></TD>
+<TD>{printer_is_shared=0?
 <A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1">
 <IMG SRC="/images/button-publish-printer.gif" ALT="Publicar impresora" CLASS="button"></A>
 :
 <A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1">
 <IMG SRC="/images/button-publish-printer.gif" ALT="Publicar impresora" CLASS="button"></A>
 :
@@ -56,8 +57,9 @@
 <A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-set-as-default.gif" ALT="Poner como predeterminada" CLASS="button"></A>
 <A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}">
 <A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}">
 <IMG SRC="/images/button-set-as-default.gif" ALT="Poner como predeterminada" CLASS="button"></A>
 <A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-set-allowed-users.gif" ALT="Establecer usuarios permitidos" CLASS="button"></A>
-</P>
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Establecer usuarios permitidos" CLASS="button"></A></TD>
+</TR>
+</TABLE></P>
 </TD>
 </TR>
 </TABLE>
 </TD>
 </TR>
 </TABLE>
index eca4767c95bae92d628f410a085a6ad44401c044..886a138ebe445a07aaa7fad472ce8bb9dc2b1caf 100644 (file)
@@ -19,8 +19,8 @@ function select_printers() {
 <P>Consulte el archivo <A HREF="/admin/log/error_log"
 TARGET="_blank">error_log</A> para m&aacute;s informaci&oacute;n.</P>:
 <P>Esta p&aacute;gina le permite exportar las impresoras a Samba para que
 <P>Consulte el archivo <A HREF="/admin/log/error_log"
 TARGET="_blank">error_log</A> para m&aacute;s informaci&oacute;n.</P>:
 <P>Esta p&aacute;gina le permite exportar las impresoras a Samba para que
-los clientes Windows puedan acceder a ellas por el icono de su
-escritorio <VAR>Sitios de red</VAR>. Debe haber instalado
+los clientes Windows puedan acceder a ellas por los iconos de su
+escritorio <VAR>Entorno de red</VAR> o <VAR>Sitios de red</VAR>. Debe haber instalado
 previamente el controlador de impresora PostScript de Windows
 como se describe en la p&aacute;gina del manual
 <A HREF="/help/man-cupsaddsmb.html"
 previamente el controlador de impresora PostScript de Windows
 como se describe en la p&aacute;gina del manual
 <A HREF="/help/man-cupsaddsmb.html"
@@ -43,7 +43,7 @@ onChange="select_printers()"> Exportar todas las impresoras
 </TR>
 <TR>
 <TH CLASS="label">Contrase&ntilde;a Samba:</TH>
 </TR>
 <TR>
 <TH CLASS="label">Contrase&ntilde;a Samba:</TH>
-<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (necesario)</TD>
+<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (necesaria)</TD>
 </TR>
 <TR>
 <TD></TD>
 </TR>
 <TR>
 <TD></TD>
index 55f44824edbe0575458edb2964d2e85aa87c7cc0..78051d4f7568da496957415b896c37a4a993a44d 100644 (file)
@@ -7,8 +7,8 @@ WIDTH="15" HEIGHT="15" ALT=""></TD>
 <TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
 
 <P><SMALL>Common UNIX Printing System, CUPS, y el logo de CUPS son
 <TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
 
 <P><SMALL>Common UNIX Printing System, CUPS, y el logo de CUPS son
-marcas registradas de <A HREF="http://www.easysw.com">Easy Software
-Products</A>. Los derechos de copia de CUPS 1997-2006 son de Easy Software Products.
+marcas registradas de <A HREF="http://www.apple.com">Apple, Inc.</A> Los
+derechos de copia de CUPS 2007 son de Apple Inc.
 Todos los derechos reservados.</SMALL></P>
 
 </TD>
 Todos los derechos reservados.</SMALL></P>
 
 </TD>