]> 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
 
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
@@ -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.
+    Tomohiro Kato                  - Japanese localization.
     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.
-    Tomohiro Kato                  - Japanese localization.
+    Teppo Turlianen                - Finnish localization.
     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
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).
 #
@@ -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) templates/edit-config.tmpl templates/header.tmpl
+       $(RM) templates/header.tmpl
        -$(RM) doc/*/index.html
-       -$(RM) templates/*/edit-config.tmpl
        -$(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"
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).
 #
@@ -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).
  *
@@ -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,
-                                   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 *);
-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);
@@ -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 */
-               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 */
@@ -199,8 +199,9 @@ main(int  argc,                             /* I - Number of command-line args */
   }
   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);
   }
 
@@ -224,8 +225,9 @@ main(int  argc,                             /* I - Number of command-line args */
                      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);
   }
 
@@ -263,29 +265,30 @@ main(int  argc,                           /* I - Number of command-line args */
       * 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...
        */
 
-        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 ++;
+
+        if (*optptr)
+         *optptr++ = '\0';
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * Process the option...
@@ -327,7 +330,7 @@ main(int  argc,                             /* I - Number of command-line args */
          cupsSetEncryption(HTTP_ENCRYPT_IF_REQUESTED);
        else
        {
-         fprintf(stderr,
+         _cupsLangPrintf(stderr,
                          _("ERROR: Unknown encryption option value \"%s\"!\n"),
                          value);
         }
@@ -340,7 +343,7 @@ main(int  argc,                             /* I - Number of command-line args */
          version = 1;
        else
        {
-         fprintf(stderr,
+         _cupsLangPrintf(stderr,
                          _("ERROR: Unknown version option value \"%s\"!\n"),
                          value);
        }
@@ -369,8 +372,9 @@ main(int  argc,                             /* I - Number of command-line args */
         * 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.
     */
 
-    if ((ptr = getenv("AUTH_USERNAME")) != NULL)
+    const char *ptr = getenv("AUTH_USERNAME");
+
+    if (ptr)
       cupsSetUser(ptr);
 
     password = getenv("AUTH_PASSWORD");
@@ -488,8 +494,8 @@ main(int  argc,                             /* I - Number of command-line args */
 
   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)
     {
@@ -505,8 +511,9 @@ main(int  argc,                             /* I - Number of command-line args */
        * 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);
@@ -525,16 +532,16 @@ main(int  argc,                           /* I - Number of command-line args */
       {
         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;
 
-       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);
 
@@ -543,8 +550,8 @@ main(int  argc,                             /* I - Number of command-line args */
       }
       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
@@ -552,8 +559,9 @@ main(int  argc,                             /* I - Number of command-line args */
         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);
       }
 
@@ -572,7 +580,7 @@ main(int  argc,                             /* I - Number of command-line args */
   }
 
   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)
@@ -638,18 +646,18 @@ main(int  argc,                           /* I - Number of command-line args */
       {
         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;
 
-       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);
 
@@ -663,14 +671,15 @@ main(int  argc,                           /* I - Number of command-line args */
        * 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)
       {
-        fputs(_("ERROR: Destination printer does not exist!\n"), stderr);
+        _cupsLangPuts(stderr, _("ERROR: Destination printer does not exist!\n"));
 
        if (supported)
           ippDelete(supported);
@@ -679,8 +688,9 @@ main(int  argc,                             /* I - Number of command-line args */
       }
       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);
       }
 
@@ -713,7 +723,7 @@ main(int  argc,                             /* I - Number of command-line args */
                format_sup->values[i].string.text);
     }
 
-    report_printer_state(supported);
+    report_printer_state(supported, 0);
   }
   while (ipp_status > IPP_OK_CONFLICT);
 
@@ -742,8 +752,9 @@ main(int  argc,                             /* I - Number of command-line args */
       * 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);
@@ -944,7 +955,8 @@ main(int  argc,                             /* I - Number of command-line args */
       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 ||
@@ -954,25 +966,28 @@ main(int  argc,                           /* I - Number of command-line args */
        * 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
-        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)
     {
-      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;
-      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);
@@ -1010,8 +1025,9 @@ main(int  argc,                           /* I - Number of command-line args */
        {
          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;
        }
       }
@@ -1035,7 +1051,7 @@ main(int  argc,                           /* I - Number of command-line args */
     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;)
     {
@@ -1089,8 +1105,9 @@ main(int  argc,                           /* I - Number of command-line args */
        {
          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;
        }
       }
@@ -1124,7 +1141,7 @@ main(int  argc,                           /* I - Number of command-line args */
       * 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...
@@ -1145,7 +1162,7 @@ main(int  argc,                           /* I - Number of command-line args */
   * 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...
@@ -1211,7 +1228,7 @@ cancel_job(http_t     *http,              /* I - HTTP connection */
   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;
@@ -1231,8 +1248,8 @@ cancel_job(http_t     *http,              /* I - HTTP connection */
   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 */
-    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 */
@@ -1281,7 +1299,7 @@ check_printer_state(
 
   if ((response = cupsDoRequest(http, request, resource)) != NULL)
   {
-    report_printer_state(response);
+    report_printer_state(response, job_id);
     ippDelete(response);
   }
 }
@@ -1312,25 +1330,25 @@ compress_files(int  num_files,          /* I - Number of files */
   {
     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)
     {
-      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)
     {
-      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);
     }
@@ -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)
       {
-        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);
@@ -1408,7 +1427,8 @@ password_cb(const char *prompt)           /* I - Prompt (not used) */
  */
 
 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... */
@@ -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 */
+  cups_lang_t          *language;      /* Current localization */
 
 
   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: ";
+  language = cupsLangDefault();
 
   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))
@@ -1504,11 +1530,11 @@ report_printer_state(ipp_t *ipp)        /* I - IPP response */
     {
       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"))
-        fprintf(stderr, "WARNING: %s\n", message);
+        fprintf(stderr, "WARNING: %s\n", _cupsLangString(language, message));
       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)
   {
-    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)
   {
-    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
   {
@@ -1572,8 +1599,8 @@ run_pictwps_filter(char       **argv,     /* I - Command-line arguments */
 
   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);
@@ -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);
-    fprintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
-            strerror(errno));
+    _cupsLangPrintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
+                   strerror(errno));
     return (errno);
   }
 
@@ -1642,8 +1669,8 @@ run_pictwps_filter(char       **argv,     /* I - Command-line arguments */
     * 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);
@@ -1656,8 +1683,8 @@ run_pictwps_filter(char       **argv,     /* I - Command-line arguments */
 
   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)
@@ -1673,11 +1700,11 @@ run_pictwps_filter(char       **argv,   /* I - Command-line arguments */
   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
-      fprintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
-              status);
+      _cupsLangPrintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
+                     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).
  *
@@ -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 */
-                       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 */
@@ -186,8 +186,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 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);
   }
 
@@ -276,29 +277,30 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       * 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...
        */
 
-        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 ++;
+
+        if (*options)
+         *options++ = '\0';
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * 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
-         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])
       {
@@ -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
-         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])
       {
@@ -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
-         fprintf(stderr, _("ERROR: Unknown file order \"%s\"\n"), value);
+         _cupsLangPrintf(stderr, _("ERROR: Unknown file order \"%s\"\n"),
+                         value);
       }
       else if (!strcasecmp(name, "reserve"))
       {
@@ -457,8 +461,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
 
     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);
     }
   }
@@ -476,6 +480,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
     * the remote end...
     */
 
+    char *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)
   {
-    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;
   }
 
@@ -668,7 +674,8 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
 
   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);
   }
 
@@ -690,9 +697,9 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
     */
 
     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;;
@@ -791,8 +798,9 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
        * 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);
 
@@ -810,16 +818,15 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
       {
         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;
 
-       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);
 
@@ -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));
-       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);
       }
     }
@@ -858,7 +866,7 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
     }
 
     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)
@@ -964,8 +972,8 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
         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))
       {
@@ -978,9 +986,9 @@ lpd_queue(const char *hostname,             /* I - Host to connect to */
 
         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;
        }
 
@@ -988,11 +996,11 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
       }
 
       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
-       fputs(_("INFO: Control file sent successfully\n"), stderr);
+       _cupsLangPuts(stderr, _("INFO: Control file sent successfully\n"));
     }
     else
       status = 0;
@@ -1013,13 +1021,13 @@ lpd_queue(const char *hostname,         /* I - Host to connect to */
         return (CUPS_BACKEND_FAILED);
       }
 
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sending data file (%lld bytes)\n"),
+                     _("INFO: Sending data file (%lld bytes)\n"),
 #else
-              _("INFO: Sending data file (%ld bytes)\n"),
+                     _("INFO: Sending data file (%ld bytes)\n"),
 #endif /* HAVE_LONG_LONG */
-              CUPS_LLCAST filestats.st_size);
+                     CUPS_LLCAST filestats.st_size);
 
       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)
        {
-         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)
          {
@@ -1063,9 +1072,9 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
 
           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;
           }
 
@@ -1076,10 +1085,11 @@ lpd_queue(const char *hostname,         /* I - Host to connect to */
         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
-       fputs(_("INFO: Data file sent successfully\n"), stderr);
+       _cupsLangPuts(stderr, _("INFO: Data file sent successfully\n"));
     }
 
     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);
       }
 
-      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))
       {
@@ -1107,9 +1117,9 @@ lpd_queue(const char *hostname,           /* I - Host to connect to */
 
         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;
        }
 
@@ -1117,11 +1127,11 @@ lpd_queue(const char *hostname,         /* I - Host to connect to */
       }
 
       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
-       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.
 * 
@@ -242,7 +242,9 @@ int main (int argc, const char * argv[])
     /* 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);
     }
 
@@ -1363,9 +1365,9 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
         *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;                /* */
 
@@ -1393,53 +1395,54 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
 
     while (*options != '\0')
     {
-      /*
+     /*
       * 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 ++;
-        
-        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...
       */
-      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;
         }
-        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;
         }
@@ -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);
         }
       }
-      else if (strcasecmp(optionName, "status") == 0)
+      else if (!strcasecmp(optionName, "status"))
       {
+       /*
+        * Set status reporting interval...
+       */
+
         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
         {
@@ -1469,20 +1476,24 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
   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;
 }
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).
  *
@@ -122,8 +122,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 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);
   }
 
@@ -213,8 +214,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        * 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...
@@ -227,19 +229,22 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
 
       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)
       {
-        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
       {
-       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);
       }
     }
@@ -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)
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sent print file, %lld bytes...\n"),
+                     _("INFO: Sent print file, %lld bytes...\n"),
 #else
-              _("INFO: Sent print file, %ld bytes...\n"),
+                     _("INFO: Sent print file, %ld bytes...\n"),
 #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))
   {
-    fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+    _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
     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).
  *
@@ -118,8 +118,8 @@ backendDrainOutput(int print_fd,    /* I - Print file descriptor */
         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);
        }
       }
@@ -230,7 +230,7 @@ backendRunLoop(
        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)
@@ -321,7 +321,7 @@ backendRunLoop(
          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;
          }
         }
@@ -330,7 +330,7 @@ backendRunLoop(
          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;
          }
        }
@@ -352,7 +352,7 @@ backendRunLoop(
        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;
        }
 
@@ -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).
  *
@@ -96,7 +96,8 @@ print_device(const char *resource,    /* I - SCSI device */
 
   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);
   }
 
@@ -119,8 +120,9 @@ print_device(const char *resource,  /* I - SCSI device */
        * 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...
@@ -133,13 +135,15 @@ print_device(const char *resource,        /* I - SCSI device */
 
       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
       {
-        fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 30 seconds...\n"));
         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)
         {
-         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
@@ -211,8 +215,8 @@ print_device(const char *resource,  /* I - SCSI device */
 
       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);
       }
@@ -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).
  *
@@ -110,7 +110,8 @@ print_device(const char *resource,  /* I - SCSI device */
 
   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);
   }
 
@@ -148,13 +149,15 @@ print_device(const char *resource,        /* I - SCSI device */
 
       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
       {
-        fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+        _cupsLangPuts(stderr,
+                     _("INFO: Printer busy; will retry in 30 seconds...\n"));
         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)
         {
-         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
@@ -230,8 +233,8 @@ print_device(const char *resource,  /* I - SCSI device */
 
       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);
       }
@@ -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).
  *
@@ -153,8 +153,9 @@ main(int  argc,             /* I - Number of command-line arguments (6 or 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);
   }
 
@@ -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).
  *
@@ -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 */
-               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 */
@@ -161,8 +161,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 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);
   }
 
@@ -234,8 +235,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        * 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...
@@ -248,13 +250,15 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
 
       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
       {
-       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);
       }
     }
@@ -285,29 +289,30 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       * 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...
        */
 
-        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 ++;
+
+        if (*options)
+         *options++ = '\0';
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * Process the option...
@@ -370,8 +375,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
              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 */
@@ -1247,7 +1252,8 @@ side_cb(int print_fd,                     /* I - Print file */
 
   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;
   }
 
@@ -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).
  *
@@ -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 */
-               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 */
@@ -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 */
-                 *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)
@@ -122,8 +122,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 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);
   }
 
@@ -190,29 +191,30 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       * 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...
        */
 
-        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 ++;
+
+        if (*options)
+         *options++ = '\0';
       }
       else
-        value[0] = '\0';
+        value = (char *)"";
 
      /*
       * 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)
   {
-    fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"), hostname);
+    _cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
+                    hostname);
     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);
 
@@ -275,8 +279,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
        * 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...
@@ -292,16 +297,16 @@ main(int  argc,                           /* I - Number of command-line arguments (6 or 7) */
       {
         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;
 
-       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);
 
@@ -312,9 +317,11 @@ main(int  argc,                            /* I - Number of command-line arguments (6 or 7) */
       {
         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);
       }
     }
@@ -335,7 +342,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   }
 
   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)
@@ -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)
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sent print file, %lld bytes...\n"),
+                     _("INFO: Sent print file, %lld bytes...\n"),
 #else
-              _("INFO: Sent print file, %ld bytes...\n"),
+                     _("INFO: Sent print file, %ld bytes...\n"),
 #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...
     */
 
-    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);
 
@@ -413,7 +420,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
     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);
 }
@@ -439,7 +446,7 @@ side_cb(int print_fd,                       /* I - Print file */
 
   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;
   }
 
@@ -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
@@ -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 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();
@@ -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 */
-            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) */
@@ -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 */
-                 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 */
@@ -327,6 +328,7 @@ print_device(const char *uri,               /* I - Device URI */
                  stimeout;             /* Timeout for select() */
   struct timespec cond_timeout;                /* pthread condition timeout */
 
+
   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);
-      fprintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
+      _cupsLangPrintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
 
       if (driverBundlePath)
        CFRelease(driverBundlePath);
@@ -404,7 +406,8 @@ print_device(const char *uri,               /* I - Device URI */
       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 */
       }
     }
@@ -456,9 +459,11 @@ print_device(const char *uri,              /* I - Device URI */
 
     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;
     }
+
+    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))
   {
-    fputs(_("WARNING: Couldn't create read channel\n"), stderr);
+    _cupsLangPuts(stderr, _("WARNING: Couldn't create read channel\n"));
     return CUPS_BACKEND_STOP;
   }
 
@@ -488,7 +493,7 @@ print_device(const char *uri,               /* I - Device URI */
 
   while (status == noErr && copies-- > 0)
   {
-    fputs(_("INFO: Sending data\n"), stderr);
+    _cupsLangPuts(stderr, _("INFO: Sending data\n"));
 
     if (print_fd != STDIN_FILENO)
     {
@@ -556,7 +561,7 @@ print_device(const char *uri,               /* I - Device URI */
        }
        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;
        }
       }
@@ -632,7 +637,8 @@ print_device(const char *uri,               /* I - Device URI */
          */
 
          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;
        }
@@ -656,27 +662,42 @@ print_device(const char *uri,             /* I - Device URI */
   * 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);
@@ -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
-  * 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);
@@ -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)
-      g.wait_eof = false;
+    {
+     /*
+      * Force the read thread to exit...
+      */
+
+      pthread_kill(read_thread_id, SIGTERM);
+    }
   }
   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 */
-         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 */
@@ -1091,7 +1124,7 @@ static Boolean find_device_cb(void *refcon,
   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;
@@ -1109,7 +1142,7 @@ static void status_timer_cb(CFRunLoopTimerRef timer,
                            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 -
 /*
- * '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 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';
@@ -1562,56 +1596,61 @@ static void parse_options(const char *options,
   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 ++;
 
-      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 ++;
+
+      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;
-      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
-       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);
-    }
-    else if (strcasecmp(optionName, "location") == 0 && location)
+    else if (!strcasecmp(name, "location") && location)
       *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()
@@ -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).
  *
@@ -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 */
-            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) */
@@ -105,8 +105,9 @@ print_device(const char *uri,               /* I - Device URI */
        * 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...
@@ -119,20 +120,23 @@ print_device(const char *uri,             /* I - Device URI */
 
       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)
       {
-        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
       {
-       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);
       }
     }
@@ -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)
-      fprintf(stderr,
+      _cupsLangPrintf(stderr,
 #ifdef HAVE_LONG_LONG
-              _("INFO: Sent print file, %lld bytes...\n"),
+                     _("INFO: Sent print file, %lld bytes...\n"),
 #else
-              _("INFO: Sent print file, %ld bytes...\n"),
+                     _("INFO: Sent print file, %ld bytes...\n"),
 #endif /* HAVE_LONG_LONG */
-              CUPS_LLCAST tbytes);
+                     CUPS_LLCAST tbytes);
   }
 
  /*
@@ -411,8 +415,8 @@ open_device(const char *uri,                /* I - Device URI */
 
       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);
       }
     }
@@ -504,8 +508,8 @@ open_device(const char *uri,                /* I - Device URI */
 
       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);
       }
     }
@@ -562,7 +566,7 @@ side_cb(int print_fd,                       /* I - Print file */
 
   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;
   }
 
@@ -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).
  *
@@ -54,7 +54,7 @@
 
 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[]);
 
 
@@ -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 */
-            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) */
@@ -184,8 +184,9 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 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);
   }
 
@@ -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)
   {
-    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);
   }
 
@@ -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)
     {
-      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);
     }
 
@@ -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("TOPIC", n->section);
 
    /*
     * 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.
  *
@@ -85,9 +85,9 @@ cgiCopyTemplateFile(FILE       *out,  /* I - Output file */
 void
 cgiCopyTemplateLang(const char *tmpl)  /* I - Base filename */
 {
-  int          i;                      /* Looping var */
   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 */
@@ -100,22 +100,19 @@ cgiCopyTemplateLang(const char *tmpl)     /* I - Base filename */
   * Convert the language to a locale name...
   */
 
+  locale[0] = '\0';
+
   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...
@@ -123,14 +120,17 @@ cgiCopyTemplateLang(const char *tmpl)     /* I - Base filename */
 
   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);
+      in = fopen(filename, "r");
+    }
   }
 
   fprintf(stderr, "DEBUG2: Template file is \"%s\"...\n", filename);
@@ -139,7 +139,7 @@ cgiCopyTemplateLang(const char *tmpl)       /* I - Base filename */
   * 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));
@@ -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
@@ -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       -
 
 #
-# 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 "$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
@@ -20,7 +20,7 @@ dnl Set the name of the config header file...
 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'`"
@@ -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(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))
 
@@ -286,5 +287,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
 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
index c34dfd0901ccea68ffa7ec923b8ee60a644a3b34..a0bdffcbe13d1f4d49f948f14ed1836d5c445ec5 100644 (file)
@@ -1,5 +1,5 @@
 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
@@ -292,20 +292,24 @@ AC_SUBST(CUPS_FONTPATH)
 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)
@@ -356,5 +360,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
 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
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).
  *
 #undef HAVE_DLFCN_H
 
 
+/*
+ * Do we have <sys/param.h>?
+ */
+
+#undef HAVE_SYS_PARAM_H
+
+
 /*
  * Do we have <sys/ucred.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).
  *
@@ -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).
  *
@@ -59,10 +59,10 @@ extern "C" {
  * Constants...
  */
 
-#  define CUPS_VERSION         1.0300
+#  define CUPS_VERSION         1.0301
 #  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
 
 
@@ -256,5 +256,5 @@ extern void         cupsSetDefaultDest(const char *name,
 #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).
  *
@@ -197,18 +197,17 @@ httpAddrLookup(
 #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
   {
@@ -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).
  *
@@ -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 */
+#    ifdef HAVE_KRB5_H
+#      include <krb5.h>
+#    endif /* HAVE_KRB5_H */
 #  endif /* HAVE_GSSAPI */
 
 #  ifdef HAVE_AUTHORIZATION_H
@@ -263,5 +266,5 @@ extern void _cups_freeifaddrs(struct ifaddrs *addrs);
 #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).
  *
@@ -985,11 +985,12 @@ typedef struct
 static const _apple_name_locale_t apple_name_locale[] =
 {
   { "en"       , "en_US" },
-  { "no"       , "nb"    },
+  { "nb"       , "no"    },
   { "zh-Hans"  , "zh_CN" },
   { "zh-Hant"  , "zh_TW" }
 };
 
+
 /*
  * 'appleLangDefault()' - Get the default locale string.
  */
@@ -998,6 +999,8 @@ static const char *                 /* O - Locale string */
 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 */
@@ -1014,63 +1017,77 @@ appleLangDefault(void)
   if (!cg->language[0])
   {
     if ((lang = getenv("LANG")))
+    {
       strlcpy(cg->language, lang, sizeof(cg->language));
-    else
+      return (cg->language);
+    }
+    else if ((bundle = CFBundleGetMainBundle()) != NULL &&
+             (bundleList = CFBundleCopyBundleLocalizations(bundle)) != NULL)
     {
       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).
  *
@@ -44,7 +44,8 @@
  * 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,
@@ -90,7 +91,7 @@ ppdLocalize(ppd_file_t *ppd)          /* I - PPD file */
   * 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.
@@ -240,7 +241,7 @@ ppdLocalizeIPPReason(
   * 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...
@@ -391,8 +392,9 @@ ppdLocalizeIPPReason(
 
 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 */
 
@@ -403,8 +405,8 @@ ppd_ll_CC(char *ll_CC,                      /* O - Country-specific locale name */
 
   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;
   }
 
@@ -412,8 +414,10 @@ ppd_ll_CC(char *ll_CC,                     /* O - Country-specific 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)
   {
@@ -423,16 +427,16 @@ ppd_ll_CC(char *ll_CC,                    /* O - Country-specific locale name */
     */
 
     if (!strcmp(ll_CC, "cs"))
-      strcpy(ll_CC, "cs_CZ");
+      strlcpy(ll_CC, "cs_CZ", ll_CC_size);
     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"))
-      strcpy(ll_CC, "ja_JP");
+      strlcpy(ll_CC, "ja_JP", ll_CC_size);
     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);
@@ -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);
 
-    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).
  *
@@ -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).
  *
@@ -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"
 *%
-*% "$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).
 *%
@@ -149,6 +149,18 @@ http://foo/fr/bar.html
 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
@@ -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
 *%
-*% 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).
  *
@@ -224,6 +224,18 @@ main(int  argc,                            /* I - Number of command-line arguments */
       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
@@ -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).
 #
@@ -92,6 +92,8 @@ WEBIMAGES     =       \
                        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 \
index 08457c05b0ff394fba090044b2024eb15fc221ed..4b8bc87bdc1a135a098ebae7454d5062b6981761 100644 (file)
@@ -110,14 +110,13 @@ SPAN.info {
   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;
-  page-break-before: always;
 }
 
 DT {
@@ -134,7 +133,7 @@ DL.category DT {
 }
 
 P.summary {
-  margin-left: 54pt;
+  margin-left: 36pt;
   font-family: monospace;
 }
 
index 292e170f7b0dcaf9320f87fe72c2f84460057a72..026042412efa6ad176c780448836df1c2542928b 100644 (file)
@@ -173,7 +173,7 @@ SPAN.info {
   white-space: nowrap;
 }
 
-H2 SPAN.info, H3 SPAN.info {
+H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
   float: right;
   font-size: 100%;
 }
@@ -196,9 +196,10 @@ DIV.sidebar {
   background: #ddddaa;
   border: solid 2px #cccc99;
   float: right;
+  min-width: 25%;
   margin-left: 10pt;
+  max-width: 33%;
   padding: 5pt;
-  width: 25%;
   /* 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 {
-  margin-left: 54pt;
+  margin-left: 36pt;
   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.
-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>
@@ -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
-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>
index b8f420ddeb60ceecb89e46f51e4e23621f7cc4f0..6dd4e91f903db273bf54663a953c1c4abd740ee3 100644 (file)
@@ -4,31 +4,22 @@
 <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>
 <!--
-  "$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).
 
+  Copyright 2007 by Apple Inc.
   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>
@@ -73,431 +64,401 @@ LINE-END = CR / LF / CR LF
 </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'>
-*APBookFile: "file:///Library/Printers/vendor/Help/filename"
+*% Use our setup tool when adding a printer
+*APAutoSetupTool: "/Library/Printers/vendor/Tools/autosetuptool"
 </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'>
-<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>
 
-<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'>
-*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>
 
-<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'>
-<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>
 
-<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>
 
-<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'>
-*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'>
-<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>
 
-<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'>
-*cupsBackSide: Rotated
-*cupsFlipDuplex: true
+*% Define the names for our color matching...
+*APCustomColorMatchingName name/AcmeColor(tm): ""
+*fr.APCustomColorMatchingName name/La AcmeColor(tm): ""
 </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'>
-*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>
 
-<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'>
-<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>
 
-<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'>
-<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>
 
-<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'>
-<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>
 
-<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>
 
@@ -566,6 +527,15 @@ option value is "2.0" then CUPS will output the string
 
 </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'>
@@ -613,285 +583,86 @@ option value is "2.0" then CUPS will output the string
 </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'>
-f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
+(My Watermark)
+&lt;&lt;/cupsString1 3 -1 roll&gt;&gt;setpagedevice
 </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'>
-| m00 m01 m02 |
-| m10 m11 m12 |
-| m20 m21 m22 |
+&lt;&lt;/cupsString1(My Watermark)&gt;&gt;setpagedevice
 </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>
 
-<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 {
@@ -913,7 +684,7 @@ PRE B {
 
 </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>
 
@@ -1179,9 +950,646 @@ PRE B {
 </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>
 
@@ -1195,7 +1603,7 @@ PRE B {
 
 </ul>
 
-<h3>Changes in CUPS 1.2.8</h3>
+<h3>Changes in CUPS 1.2.8</a></h3>
 
 <ul>
 
@@ -1204,7 +1612,7 @@ PRE B {
 
 </ul>
 
-<h3>Changes in CUPS 1.2</h3>
+<h3>Changes in CUPS 1.2</a></h3>
 
 <ul>
 
@@ -1228,7 +1636,7 @@ PRE B {
 
 </ul>
 
-<h3>Changes in CUPS 1.1</h3>
+<h3>Changes in CUPS 1.1</a></h3>
 
 <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>
+<TR>
+       <TD>button-find-new-printers.gif</TD>
+       <TD>Find New Printers</TD>
+</TR>
 <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>
 
-<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>
@@ -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>
+<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>
@@ -916,6 +931,10 @@ supported <CODE>OP</CODE> values.</P>
        <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>
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).
  *
@@ -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).
  *
@@ -660,7 +660,8 @@ EndPage(ppd_file_t *ppd,            /* I - PPD file */
         * End the label and eject...
        */
 
-        puts("^XZ");
+        puts("^IDR:CUPS.GRF^FS");
+       puts("^XZ");
 
        /*
         * 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).
 #
@@ -16,8 +16,8 @@
 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
 
 
+#
+# 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.
@@ -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"
-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"
@@ -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"
-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"
-msgstr "ADVARSEL: Kunne ikke oprette læsekanal\n"
+msgstr "WARNING: Kunne ikke oprette læsekanal\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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-msgstr "ADVARSEL: Ukendt mulighed \&quot;%s\&quot;!\n"
+msgstr "WARNING: Ukendt mulighed \&quot;%s\&quot;!\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"
-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"
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"
-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"
@@ -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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
+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"
@@ -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"
-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"
@@ -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"
-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"
@@ -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"
-msgstr "WARNUNG: Auswahl „%s“ für Option unbekannt!\n"
+msgstr "WARNING: Auswahl „%s“ für 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"
-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!"
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"
-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"
@@ -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"
-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"
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"
 
-#, fuzzy, c-format
 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"
-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"
-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"
-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"
-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"
-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"
-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"
-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 ""
 
-#, fuzzy, c-format
 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"
-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"
@@ -390,15 +380,13 @@ 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 ""
-"      **EBAÕNN**  1284DeviceId peab olema 1284DeviceID!\n"
+"      **EBAÕNN**  %s peab olema 1284DeviceID!\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"
@@ -436,12 +424,11 @@ msgstr ""
 "      **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 ""
-"      **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
@@ -489,19 +476,14 @@ msgstr ""
 "      **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"
-msgstr "      **EBAÕNN**  Vigane keel \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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 ""
-"      **EBAÕNN**  Vaikimisi tõlkestring võtmele %s sisaldab 8-bitiseid "
-"märke!\n"
 
 #, c-format
 msgid ""
@@ -669,9 +651,8 @@ msgstr ""
 "      **EBAÕNN**  VAJALIK ShortNickName\n"
 "                  Viide: lk 64-65, sektsioon 5.3.\n"
 
-#, fuzzy, c-format
 msgid "    %d ERRORS FOUND\n"
-msgstr "    %d VIGA%s LEITUD\n"
+msgstr ""
 
 #, 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\"!"
 
-#, fuzzy, c-format
 msgid "Bad notify-pull-method \"%s\"!"
-msgstr "Vigane port-monitor \"%s\"!"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr "Vigane port-monitor \"%s\"!"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "Bad number-up value %d."
-msgstr "Vigane koopiate väärtus %d."
+msgstr ""
 
-#, fuzzy, c-format
 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."
@@ -1222,9 +1199,8 @@ msgstr "Vigane printer-state väärtus %d!"
 msgid "Bad request version number %d.%d!"
 msgstr "Vigane soovi versiooninumber %d.%d!"
 
-#, fuzzy
 msgid "Bad subscription ID!"
-msgstr "Tellimusi ei leitud."
+msgstr ""
 
 msgid "Banners"
 msgstr "Bännerid"
@@ -1294,17 +1270,14 @@ msgstr ""
 msgid "Door open."
 msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
+msgstr ""
 
-#, fuzzy, c-format
 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"
@@ -1322,9 +1295,8 @@ msgstr ""
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "Vigane device-uri \"%s\"!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Bad charset file %s\n"
@@ -1360,9 +1332,8 @@ msgstr ""
 msgid "ERROR: Duplicate %%Pages: comment seen!\n"
 msgstr ""
 
-#, fuzzy
 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 ""
@@ -1406,9 +1377,8 @@ msgstr ""
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr ""
 
-#, fuzzy
 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"
@@ -1418,89 +1388,68 @@ 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"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "Protsessi harutamine ebaõnnestus!"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "Printeri atribuutide hankimine ebaõnnestus!"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "Printeri muutmine ebaõnnestus:"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpoptions: ei õnnestu avada PPD-faili %s jaoks!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: ei õnnestu avada PPD-faili \"%s\" - %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
 
 #, 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 ""
 
-#, fuzzy, c-format
 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 ""
 
-#, fuzzy, c-format
 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"
-msgstr "lp: ei õnnestu trükkida faili: %s\n"
+msgstr ""
 
-#, fuzzy
 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 ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unknown file order \"%s\"\n"
@@ -1546,17 +1490,14 @@ msgstr ""
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
@@ -1587,9 +1528,8 @@ msgstr ""
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr ""
 
-#, fuzzy, c-format
 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 "
@@ -1603,9 +1543,8 @@ msgstr ""
 msgid "Edit Configuration File"
 msgstr "Seadistustefaili muutmine"
 
-#, fuzzy
 msgid "Empty PPD file!"
-msgstr "PPD-faili kopeerimine ebaõnnestus!"
+msgstr ""
 
 msgid "Ending Banner"
 msgstr "Lõpetav bänner"
@@ -1619,14 +1558,11 @@ msgstr "Parool teist korda:"
 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 ""
-"Selle lehekülje avamiseks andke enda või administraatori (root) kasutajanimi "
-"ja parool."
 
 msgid "Error Policy"
 msgstr "Veareegel"
@@ -1671,9 +1607,8 @@ msgstr "Abi"
 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"
-msgstr "lpstat: ei õnnestu saada ühendust serveriga %s pordis %d: %s\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."
 
-#, fuzzy, c-format
 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."
@@ -1858,20 +1792,17 @@ msgstr "Tööd nr %s ei ole olemas!"
 msgid "Job %d not found!"
 msgstr "Tööd %d ei leitud!"
 
-#, fuzzy
 msgid "Job Completed"
-msgstr "lõpetatud"
+msgstr ""
 
 msgid "Job Created"
 msgstr ""
 
-#, fuzzy
 msgid "Job Options Changed"
-msgstr "Töötoiming ebaõnnestus:"
+msgstr ""
 
-#, fuzzy
 msgid "Job Stopped"
-msgstr "peatatud"
+msgstr ""
 
 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"
 
-#, fuzzy
 msgid "Media jam!"
-msgstr "Trükimaterjali tüüp"
+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"
 
-#, fuzzy, c-format
 msgid "Missing double quote on line %d!"
-msgstr "Puuduvad topeltjutumärgid real %d!\n"
+msgstr ""
 
 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!"
 
-#, fuzzy, c-format
 msgid "Missing value on line %d!"
-msgstr "Puudub väärtus real %d!\n"
+msgstr ""
 
 msgid "Missing value string"
 msgstr "Puudub väärtusestring"
@@ -2023,9 +1951,8 @@ msgstr "Tellimusi ei leitud."
 msgid "None"
 msgstr "Puudub"
 
-#, fuzzy
 msgid "Not allowed to print."
-msgstr "Vaikimisi printer puudub"
+msgstr ""
 
 msgid "OK"
 msgstr "OK"
@@ -2102,28 +2029,23 @@ msgstr "Trükitöö:"
 msgid "Print Test Page"
 msgstr "Testlehekülje trükkimine"
 
-#, fuzzy
 msgid "Printer Added"
-msgstr "Printer"
+msgstr ""
 
-#, fuzzy
 msgid "Printer Deleted"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
 
 msgid "Printer Maintenance"
 msgstr "Printeri hooldus"
 
-#, fuzzy
 msgid "Printer Modified"
-msgstr "Printeri hooldus"
+msgstr ""
 
-#, fuzzy
 msgid "Printer Stopped"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
 
-#, fuzzy
 msgid "Printer off-line."
-msgstr "Printeri hooldus"
+msgstr ""
 
 msgid "Printer:"
 msgstr "Printer:"
@@ -2173,9 +2095,8 @@ msgstr "Lubatud kasutajate määramine"
 msgid "Set As Default"
 msgstr "Määra vaikeväärtuseks"
 
-#, fuzzy
 msgid "Set Class Options"
-msgstr "Printeri valikute määramine"
+msgstr ""
 
 msgid "Set Printer Options"
 msgstr "Printeri valikute määramine"
@@ -2250,13 +2171,10 @@ msgid ""
 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 ""
-"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 ""
@@ -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:"
 
-#, fuzzy
 msgid "Unable to add RSS subscription:"
-msgstr "Printeri lisamine ebaõnnestus:"
+msgstr ""
 
 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!"
 
-#, fuzzy
 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:"
@@ -2393,16 +2309,14 @@ msgstr "Faili cupsd.conf avaline 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"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
 
 msgid "Unable to send maintenance job:"
 msgstr "Hooldustöö saatmine ebaõnnestus:"
 
-#, fuzzy, c-format
 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:"
@@ -2413,9 +2327,8 @@ msgstr "Faili cupsd.conf üleslaadimine ebaõnnestus:"
 msgid "Unknown"
 msgstr "Teadmata"
 
-#, fuzzy, c-format
 msgid "Unknown printer error (%s)!"
-msgstr "Tundmatu printer-error-policy  \"%s\"."
+msgstr ""
 
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
@@ -2632,9 +2545,8 @@ msgstr ""
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr ""
 
-#, fuzzy, c-format
 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 ""
@@ -2676,17 +2588,14 @@ msgid ""
 "Conventions and may not print correctly!\n"
 msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "%s: tundmatu võti '%c'!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "Toetamata vorming '%s'!"
+msgstr ""
 
 #, 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"
 
-#, fuzzy, c-format
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cancel: tundmatu võti '%c'!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
@@ -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"
 
-#, fuzzy, c-format
 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"
@@ -3133,621 +3039,3 @@ msgstr "teadmata"
 
 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"
-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"
@@ -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"
-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"
@@ -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"
-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"
@@ -459,7 +459,7 @@ msgstr "Ajouter abonnement RSS"
 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"
@@ -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!"
-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!"
@@ -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"
-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"
-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"
-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"
@@ -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"
-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"
@@ -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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-msgstr "ERREUR : impossible de modifier l’imprimante :"
+msgstr "ERROR: impossible de modifier l’imprimante %s!"
 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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-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"
-msgstr "ERREUR : mode d’impression inconnu « %s »\n"
+msgstr "ERROR: mode d’impression inconnu « %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"
@@ -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"
-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"
@@ -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'!"
-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"
@@ -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"
-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"
@@ -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"
-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"
-msgstr "AVERTISSEMENT : option « %s » inconnue.\n"
+msgstr "WARNING: option « %s » inconnue.\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!"
@@ -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"
-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"
@@ -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"
-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"
index cf79c1108eab9b775c7e62c63d005fcceeb36007..a32689b5bd332156ed93d5bbffe1593b7c8ec583 100644 (file)
@@ -334,50 +334,40 @@ msgstr ""
 "       אזהרה    ShortNickName נדרש בספציפיקציה של PPD 4.3.\n"
 "                ראה: עמודים 64-65, סעיף 5.3.\n"
 
-#, fuzzy, c-format
 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"
-msgstr "      ‫**נכשל**  חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
-msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "      %s  Bad language \"%s\"!\n"
-msgstr "      ‫**נכשל**  שפה שגויה \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "      ‫**נכשל** חסר \"%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"
-msgstr "      ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
@@ -387,13 +377,10 @@ 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 ""
-"      **נכשל**  1284DeviceId חייב להיות 1284DeviceID!\n"
-"                ראה: עמוד 72, סעיף 5.5\n"
 
 #, c-format
 msgid ""
@@ -433,13 +420,10 @@ msgstr ""
 "      **נכשל**  שגוי Manufacturer (צריך להיות \"HP\")\n"
 "                ראה: עמוד 211, טבלה D.1.\n"
 
-#, fuzzy
 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 ""
@@ -486,18 +470,14 @@ msgstr ""
 "      **נכשל**  שגוי %s בחירה %s!\n"
 "                ראה: עמוד 84, סעיף 5.9\n"
 
-#, fuzzy, c-format
 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"
-msgstr "      ‫**נכשל**  שפה שגויה \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
 msgstr ""
-"      ‫**נכשל** מחרוזת תרגום ברירת מחדל לאופציה %s מכילה תווים של 8 סיביות!\n"
 
 #, c-format
 msgid ""
@@ -664,9 +644,8 @@ msgstr ""
 "      **נכשל**  נדרש ShortNickName\n"
 "                ראה: עמודים 64-65, סעיף 5.3.\n"
 
-#, fuzzy, c-format
 msgid "    %d ERRORS FOUND\n"
-msgstr "    נמצאו %d שגיאה%s\n"
+msgstr ""
 
 #, c-format
 msgid ""
@@ -1066,9 +1045,8 @@ msgstr "%s: יעד לא ידוע \"%s\"!\n"
 msgid "%s: Unknown destination MIME type %s/%s!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "%s: Unknown option '%c'!\n"
-msgstr "lp: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
 #, 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 שגוי!"
 
-#, fuzzy, c-format
 msgid "Bad notify-pull-method \"%s\"!"
-msgstr "port-monitor \"%s\" שגוי!"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr "device-uri \"%s\" שגוי!"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "Bad number-up value %d."
-msgstr "ערך העותקים %d שגוי."
+msgstr ""
 
-#, fuzzy, c-format
 msgid "Bad option + choice on line %d!"
-msgstr "אופציה + אפשרות שגויים בשורה %d!\n"
+msgstr ""
 
 #, 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!"
 
-#, fuzzy
 msgid "Bad subscription ID!"
-msgstr "לא נמצאו מינויים."
+msgstr ""
 
 msgid "Banners"
 msgstr "כרזות"
@@ -1289,13 +1262,11 @@ msgstr ""
 msgid "Door open."
 msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: %ld: (canceled:%ld)\n"
@@ -1317,9 +1288,8 @@ msgstr ""
 msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "device-uri \"%s\" שגוי!"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Bad charset file %s\n"
@@ -1400,9 +1370,8 @@ msgstr ""
 msgid "ERROR: Print file was not accepted (%s)!\n"
 msgstr ""
 
-#, fuzzy
 msgid "ERROR: Printer not responding!\n"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
 #, 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 ""
 
-#, fuzzy, c-format
 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"
-msgstr "lprm: לא יכול לבטל עבוד/ות!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני - %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "%s: לא מצליח להתחבר לשרת: %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "cupsaddsmb: לא קיים קובץ PPD למדפסת \"%s\" - %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "לא מצליח לקבל מאפייני מדפסת!"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr "לא מצליח לקבל סטטוס מדפסת:"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr "לא מצליח למחוק מדפסת:"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpoptions: ‫לא מצליח לפתוח קובץ PPD עבור %s!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: לא מצליח לפתוח קובץ PPD \"%s\" - %s\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני: %s\n"
+msgstr ""
 
 #, 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 ""
 
-#, fuzzy, c-format
 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 ""
 
-#, fuzzy, c-format
 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"
-msgstr "lp: לא מצליח להדפיס קובץ: %s\n"
+msgstr ""
 
-#, fuzzy
 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 ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
 
 #, c-format
 msgid "ERROR: Unknown file order \"%s\"\n"
@@ -1540,17 +1483,14 @@ msgstr ""
 msgid "ERROR: Unknown format character \"%c\"\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "cupsd: אופציה לא ידועה \"%c\" - נוטש!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 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"
@@ -1581,9 +1521,8 @@ msgstr ""
 msgid "ERROR: pictwpstops exited on signal %d!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr "cupsaddsmb נכשל עם סטטוס %d"
+msgstr ""
 
 msgid ""
 "ERROR: recoverable: Unable to connect to printer; will retry in 30 "
@@ -1597,9 +1536,8 @@ msgstr ""
 msgid "Edit Configuration File"
 msgstr "ערוך קובץ הגדרות"
 
-#, fuzzy
 msgid "Empty PPD file!"
-msgstr "לא ניתן להעתיק קובץ PPD!"
+msgstr ""
 
 msgid "Ending Banner"
 msgstr "כרזת סיום"
@@ -1613,12 +1551,11 @@ 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."
-msgstr "הקלד שם משתמש וסיסמה או שם משתמש \"root\" וסיסמה כדי לגשת לדף זה."
+msgstr ""
 
 msgid "Error Policy"
 msgstr "מדיניות שגיאה"
@@ -1663,9 +1600,8 @@ 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"
-msgstr "lpstat: לא מצליח להתחבר לשרת %s בפתחה %d: %s\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 ננטשה כבר - לא יכול לבטל"
 
-#, fuzzy, c-format
 msgid "Job #%d is already canceled - can't cancel."
-msgstr "עבודה #%d בוטלה כבר - לא יכול לבטל."
+msgstr ""
 
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
@@ -1850,20 +1785,17 @@ msgstr "עבודה #%s לא קיימת!"
 msgid "Job %d not found!"
 msgstr "עבודה %d לא נמצאה!"
 
-#, fuzzy
 msgid "Job Completed"
-msgstr "הסתיים"
+msgstr ""
 
 msgid "Job Created"
 msgstr ""
 
-#, fuzzy
 msgid "Job Options Changed"
-msgstr "פעולת עבודה נכשלה:"
+msgstr ""
 
-#, fuzzy
 msgid "Job Stopped"
-msgstr "עצורה"
+msgstr ""
 
 msgid "Job is completed and cannot be changed."
 msgstr "עבודה הסתיימה ולא ניתנת לשינוי."
@@ -1899,9 +1831,8 @@ msgstr "מקור דף"
 msgid "Media Type"
 msgstr "סוג דף"
 
-#, fuzzy
 msgid "Media jam!"
-msgstr "גודל דף"
+msgstr ""
 
 msgid "Media tray almost empty."
 msgstr ""
@@ -1924,9 +1855,8 @@ msgstr "‫חסרה כותרת PPD-Adobe-4.x"
 msgid "Missing asterisk in column 1"
 msgstr "חסרה כוכבית בטור 1"
 
-#, fuzzy, c-format
 msgid "Missing double quote on line %d!"
-msgstr "חסרים גרשיים בשורה %d!\n"
+msgstr ""
 
 msgid "Missing form variable!"
 msgstr "חסר משתנה טופס!"
@@ -1940,9 +1870,8 @@ msgstr "המאפיין requesting-user-name חסר!"
 msgid "Missing required attributes!"
 msgstr "חסרים מאפיינים נדרשים!"
 
-#, fuzzy, c-format
 msgid "Missing value on line %d!"
-msgstr "חסר ערך בשורה %d!\n"
+msgstr ""
 
 msgid "Missing value string"
 msgstr "חסר מחרוזת ערך"
@@ -2015,9 +1944,8 @@ msgstr "לא נמצאו מינויים."
 msgid "None"
 msgstr "כלום"
 
-#, fuzzy
 msgid "Not allowed to print."
-msgstr "אין מדפסת ברירת מחדל"
+msgstr ""
 
 msgid "OK"
 msgstr "אישור"
@@ -2094,28 +2022,23 @@ msgstr "עבודת הדפסה:"
 msgid "Print Test Page"
 msgstr "הדפס עמוד ניסיון"
 
-#, fuzzy
 msgid "Printer Added"
-msgstr "מדפסת"
+msgstr ""
 
-#, fuzzy
 msgid "Printer Deleted"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
 msgid "Printer Maintenance"
 msgstr "אחזקת מדפסת"
 
-#, fuzzy
 msgid "Printer Modified"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
-#, fuzzy
 msgid "Printer Stopped"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
 
-#, fuzzy
 msgid "Printer off-line."
-msgstr "אחזקת מדפסת"
+msgstr ""
 
 msgid "Printer:"
 msgstr "מדפסת:"
@@ -2165,9 +2088,8 @@ msgstr "קבע משתמשים מורשים"
 msgid "Set As Default"
 msgstr "קבע כברירת-מחדל"
 
-#, fuzzy
 msgid "Set Class Options"
-msgstr "קבע אופציות מדפסת"
+msgstr ""
 
 msgid "Set Printer Options"
 msgstr "קבע אופציות מדפסת"
@@ -2242,13 +2164,10 @@ msgid ""
 msgstr ""
 "ה printer-uri חייב להיות מהצורה \"ipp://HOSTNAME/printers/PRINTERNAME\"."
 
-#, fuzzy
 msgid ""
 "The subscription name may not contain spaces, slashes (/), question marks "
 "(?), or the pound sign (#)."
 msgstr ""
-"‫שם המחלקה יכול להכיל עד 127 תווים דפיסים, למעט רווחים, לוכסנים (/) וסולמית "
-"(#)."
 
 msgid "Toner low."
 msgstr ""
@@ -2259,9 +2178,8 @@ msgstr "יותר מדי עבודות פעילות."
 msgid "Unable to access cupsd.conf file:"
 msgstr "‫לא מצליח לגשת לקובץ cupsd.conf:"
 
-#, fuzzy
 msgid "Unable to add RSS subscription:"
-msgstr "לא מצליח להוסיף מדפסת:"
+msgstr ""
 
 msgid "Unable to add class:"
 msgstr "לא מצליח להוסיף מחלקה:"
@@ -2276,9 +2194,8 @@ msgstr "לא מצליח להוסיף מדפסת:"
 msgid "Unable to allocate memory for file types!"
 msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
 
-#, fuzzy
 msgid "Unable to cancel RSS subscription:"
-msgstr "לא מצליח לשנות מדפסת:"
+msgstr ""
 
 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 "לא מצליח להדפיס עמוד ניסיון:"
 
-#, fuzzy, c-format
 msgid "Unable to run \"%s\": %s\n"
-msgstr "cupsaddsmb: לא מצליח להריץ \"%s\": %s\n"
+msgstr ""
 
 msgid "Unable to send maintenance job:"
 msgstr "לא מצליח לשלוח עבודת תחזוקה:"
 
-#, fuzzy, c-format
 msgid "Unable to set Windows printer driver (%d)!"
-msgstr "לא מצליח לקבוע מנהל התקן הדפסה של Windows (%d)!\n"
+msgstr ""
 
 msgid "Unable to set options:"
 msgstr "לא מצליח לקבוע אופציות:"
@@ -2405,9 +2320,8 @@ msgstr "‫לא מצליח להעלות קובץ cupsd.conf:"
 msgid "Unknown"
 msgstr "לא ידוע"
 
-#, fuzzy, c-format
 msgid "Unknown printer error (%s)!"
-msgstr "printer-error-policy \"%s\" לא ידוע."
+msgstr ""
 
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
@@ -2623,9 +2537,8 @@ msgstr ""
 msgid "Usage: snmp [host-or-ip-address]\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "lp: מצפה לטופס אחרי האופציה -f!\n"
+msgstr ""
 
 msgid "WARNING: Couldn't create read channel\n"
 msgstr ""
@@ -2667,17 +2580,14 @@ msgid ""
 "Conventions and may not print correctly!\n"
 msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "%s: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "מבנה \"%s\" לא נתמך!"
+msgstr ""
 
 #, 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"
 
-#, fuzzy, c-format
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cancel: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
-#, fuzzy, c-format
 msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr "cancel: אופציה לא ידועה '%c'!\n"
+msgstr ""
 
 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"
 
-#, fuzzy, c-format
 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"
@@ -3122,538 +3029,3 @@ 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"
-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"
@@ -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"
-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"
@@ -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"
-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"
@@ -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"
-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"
@@ -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"
-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"
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"
 
-#, fuzzy, c-format
+#, c-format
 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
@@ -504,9 +504,9 @@ msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
 msgstr ""
 "      **失敗**  無効な LanguageVersion %s - English でなければなりません!\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
-msgstr "      **失敗**  デフォルトのオプションコードが解釈できません:s\n"
+msgstr "      **失敗**  デフォルトのオプションコードが解釈できません:s: %s\n"
 
 #, c-format
 msgid ""
@@ -733,12 +733,12 @@ msgstr ""
 "    %%BoundingBox: コメントが見つからないか不正です!\n"
 "        REF:39 ページ、%%BoundingBox:\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "    Missing or bad %%Page: comments!\n"
 "        REF: Page 53, %%Page:\n"
 msgstr ""
-"    %Page: コメントが見つからないか不正です!\n"
+"    %%Page: コメントが見つからないか不正です!\n"
 "        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"
 
-#, fuzzy, c-format
+#, c-format
 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"
index 13e57b28ee997b139e27061f769a851ecd7af4e8..6edc903a14a715aad36eedc08a7f1860597b00a6 100644 (file)
@@ -783,7 +783,7 @@ msgid ""
 "      **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"
@@ -1512,7 +1512,7 @@ msgstr "ERROR: pictwpstops를 기다릴 수 없음: %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"
@@ -1559,7 +1559,7 @@ msgstr "ERROR: 감마=1000을 사용하는, 지원되지 않는 %s 감마 값!\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 ""
@@ -1661,11 +1661,11 @@ msgstr "도움말"
 
 #, 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"
-msgstr "INFO: %d번 포트에 있는 %s 호스트에 연결을 시도하는 중\n"
+msgstr "INFO: %2$d번 포트에 있는 %1$s 호스트에 연결을 시도하는 중\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"
-msgstr "INFO: %d번 포트에 있는 %s에 연결 중...\n"
+msgstr "INFO: %2$d번 포트에 있는 %1$s에 연결 중...\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"
-msgstr "INFO: 제어 파일 보내는 중(%lu바이트)\n"
+msgstr "INFO: 제어 파일 보내는 중(%u바이트)\n"
 
 msgid "INFO: Sending data\n"
 msgstr "INFO: 데이터 보내는 중\n"
@@ -1845,7 +1845,7 @@ msgstr "작업 #%d이(가) 유지되지 않음!"
 
 #, c-format
 msgid "Job #%s does not exist!"
-msgstr "작업 #%d이(가) 존재하지 않음!"
+msgstr "작업 #%s이(가) 존재하지 않음!"
 
 #, 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"
-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"
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"
-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"
@@ -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"
-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"
@@ -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"
-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"
-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"
@@ -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"
-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"
@@ -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"
-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"
@@ -461,7 +461,7 @@ msgstr "Dodaj subskrypcję RSS"
 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"
@@ -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"
-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"
-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"
@@ -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"
-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"
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"
-msgstr ""
-
+msgstr "\t\t(tudo)\n"
 msgid "\t\t(none)\n"
-msgstr ""
-
-#, c-format
+msgstr "\t\t(sem)\n"
 msgid "\t%d entries\n"
-msgstr ""
-
+msgstr "\t%d entradas\n"
 msgid "\tAfter fault: continue\n"
-msgstr ""
-
+msgstr "\tApós falha: continuar\n"
 msgid "\tAlerts:"
-msgstr ""
-
+msgstr "\tAlertas:"
 msgid "\tBanner required\n"
-msgstr ""
-
+msgstr "\tFaixa publicitária requerida\n"
 msgid "\tCharset sets:\n"
-msgstr ""
-
+msgstr "\tConjuntos charset:\n"
 msgid "\tConnection: direct\n"
-msgstr ""
-
+msgstr "\tLigação: directa\n"
 msgid "\tConnection: remote\n"
-msgstr ""
-
+msgstr "\tLigação: remota\n"
 msgid "\tDefault page size:\n"
-msgstr ""
-
+msgstr "\tTamanho de página predefinido:\n"
 msgid "\tDefault pitch:\n"
-msgstr ""
-
+msgstr "\tPitch predefinido:\n"
 msgid "\tDefault port settings:\n"
-msgstr ""
-
-#, c-format
+msgstr "\tPredefinições de porta:\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"
-msgstr ""
-
-#, c-format
+msgstr "\tFormatos permitidos:\n"
 msgid "\tInterface: %s.ppd\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s.ppd\n"
 msgid "\tInterface: %s/interfaces/%s\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s/interfaces/%s\n"
 msgid "\tInterface: %s/ppd/%s.ppd\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s/ppd/%s.ppd\n"
 msgid "\tLocation: %s\n"
-msgstr ""
-
+msgstr "\tLocalização: %s\n"
 msgid "\tOn fault: no alert\n"
-msgstr ""
-
+msgstr "\tEm falha: sem alerta\n"
 msgid "\tUsers allowed:\n"
-msgstr ""
-
+msgstr "\tUtilizadores permitidos:\n"
 msgid "\tUsers denied:\n"
-msgstr ""
-
+msgstr "\tUtilizadores negados:\n"
 msgid "\tdaemon present\n"
-msgstr ""
-
+msgstr "\tdaemon presente\n"
 msgid "\tno entries\n"
-msgstr ""
-
-#, c-format
+msgstr "\tsem entradas\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"
-msgstr ""
-
+msgstr "\timpressão desactivada\n"
 msgid "\tprinting is enabled\n"
-msgstr ""
-
-#, c-format
+msgstr "\timpressão activada\n"
 msgid "\tqueued for %s\n"
-msgstr ""
-
+msgstr "\tem fila para %s\n"
 msgid "\tqueuing is disabled\n"
-msgstr ""
-
+msgstr "\tcolocação em fila desactivada\n"
 msgid "\tqueuing is enabled\n"
-msgstr ""
-
+msgstr "\tcolocação em fila activada\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"
-msgstr ""
-
+msgstr "                REF: Página 15, secção 3.1.\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"
-msgstr ""
-
+msgstr "                REF: Página 19, secção 3.3.\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"
-msgstr ""
-
+msgstr "                REF: Página 27, secção 3.5.\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"
-msgstr ""
-
+msgstr "                REF: Páginas 16-17, secção 3.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"
-msgstr ""
-
+msgstr "                REF: Páginas 45-46, secção 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"
-msgstr ""
-
-#, c-format
+msgstr "                REF: Páginas 52-54, secção 5.2.\n"
 msgid "        %-39.39s %.0f bytes\n"
-msgstr ""
-
-#, c-format
+msgstr "        %-39.39s %.0f bytes\n"
 msgid "        PASS    Default%s\n"
-msgstr ""
-
+msgstr "        PASS    Predefinição%s\n"
 msgid "        PASS    DefaultImageableArea\n"
-msgstr ""
-
+msgstr "        PASS    DefaultImageableArea\n"
 msgid "        PASS    DefaultPaperDimension\n"
-msgstr ""
-
+msgstr "        PASS    DefaultPaperDimension\n"
 msgid "        PASS    FileVersion\n"
-msgstr ""
-
+msgstr "        PASS    FileVersion\n"
 msgid "        PASS    FormatVersion\n"
-msgstr ""
-
+msgstr "        PASS    FormatVersion\n"
 msgid "        PASS    LanguageEncoding\n"
-msgstr ""
-
+msgstr "        PASS    LanguageEncoding\n"
 msgid "        PASS    LanguageVersion\n"
-msgstr ""
-
+msgstr "        PASS    LanguageVersion\n"
 msgid "        PASS    Manufacturer\n"
-msgstr ""
-
+msgstr "        PASS    Fabricante\n"
 msgid "        PASS    ModelName\n"
-msgstr ""
-
+msgstr "        PASS    ModelName\n"
 msgid "        PASS    NickName\n"
-msgstr ""
-
+msgstr "        PASS    NickName\n"
 msgid "        PASS    PCFileName\n"
-msgstr ""
-
+msgstr "        PASS    PCFileName\n"
 msgid "        PASS    PSVersion\n"
-msgstr ""
-
+msgstr "        PASS    PSVersion\n"
 msgid "        PASS    PageRegion\n"
-msgstr ""
-
+msgstr "        PASS    PageRegion\n"
 msgid "        PASS    PageSize\n"
-msgstr ""
-
+msgstr "        PASS    PageSize\n"
 msgid "        PASS    Product\n"
-msgstr ""
-
+msgstr "        PASS    Produto\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"
-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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "        WARN    Ficheiro APDialogExtension inexistente \"%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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "      %s  %s %s não existe!\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"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Valor cupsFilter inválido \"%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"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Idioma inválido \"%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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Escolha inexistente *%s %s em UIConstraint \"*%s %s *%s %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"
-msgstr ""
-
-#, c-format
+msgstr "      %s  Ficheiro cupsPreFilter inexistente \"%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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "      **FAIL**  LanguageEncoding %s inválida - deve ser ISOLatin1!\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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "    SEM ERROS\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"
-msgstr ""
-
-#, c-format
+msgstr "    Demasiados comentários %%BeginDocument!\n"
 msgid "    Too many %%EndDocument comments!\n"
-msgstr ""
-
+msgstr "    Demasiados comentários %%EndDocument!\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"
-msgstr ""
-
-#, c-format
+msgstr "    Aviso: sem comentário %%EndComments no ficheiro!\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"
-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"
-msgstr ""
-
-#, c-format
+msgstr " PASS\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"
-msgstr ""
-
-#, c-format
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
 msgid "%s accepting requests since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s aceita pedidos desde %s\n"
 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"
-msgstr ""
-
-#, c-format
+msgstr "%s não é implementado pela versão CUPS de lpc.\n"
 msgid "%s is not ready\n"
-msgstr ""
-
-#, c-format
+msgstr "%s não está preparada\n"
 msgid "%s is ready\n"
-msgstr ""
-
-#, c-format
+msgstr "%s está preparada\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!"
-msgstr ""
-
-#, c-format
+msgstr "%s não suportado!"
 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"
-msgstr ""
-
-#, c-format
+msgstr "%s: %-33.33s [trabalho %d localhost]\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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - ID de trabalho inválido!\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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - cópias esperadas após opção '-n'!\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-P'!\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-d'!\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"
-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"
-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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome esperado após opção  '-%c'!\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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - prioridade esperada após opção '-%c'!\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - título esperado após opção '-t'!\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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - sem destino predefinido disponível.\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - programador não responde!\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - demasiados ficheiros - \"%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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível escrever no ficheiro temporário \"%s\" - %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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino desconhecido \"%s/%s\"!\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: ID de trabalho esperado após opção '-i'!\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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Operação falhou: %s\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Impossível ligar ao servidor\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"
-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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de conjunto de caracteres ignorada!\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de formato ignorada!\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"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - opção=valor esperada após opção '-o'!\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"
-msgstr ""
-
+msgstr "?Comando de ajuda inválido desconhecido\n"
 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!"
-msgstr ""
-
-#, c-format
+msgstr "Nome de utilizador Samba requerido para exportar recursos de impressora!"
 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!"
-msgstr ""
-
+msgstr "Uma impressora com o nome \"%s\" já existe!"
 msgid "Accept Jobs"
-msgstr ""
-
+msgstr "Aceitar trabalhos"
 msgid "Add Class"
-msgstr ""
-
+msgstr "Adicionar classe"
 msgid "Add Printer"
-msgstr ""
-
+msgstr "Adicionar impressora"
 msgid "Add RSS Subscription"
-msgstr ""
-
+msgstr "Adicionar subscrição RSS"
 msgid "Administration"
-msgstr ""
-
-#, c-format
+msgstr "Administração"
 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)!"
-msgstr ""
-
+msgstr "Grupos de atributos desordenados (%x < %x)!"
 msgid "Bad OpenGroup"
-msgstr ""
-
+msgstr "OpenGroup inválido"
 msgid "Bad OpenUI/JCLOpenUI"
-msgstr ""
-
+msgstr "OpenUI/JCLOpenUI inválidos"
 msgid "Bad OrderDependency"
-msgstr ""
-
+msgstr "OrderDependency inválida"
 msgid "Bad UIConstraints"
-msgstr ""
-
-#, c-format
+msgstr "UIConstraints inválidas"
 msgid "Bad copies value %d."
-msgstr ""
-
+msgstr "Valor de cópias inválido %d."
 msgid "Bad custom parameter"
-msgstr ""
-
-#, c-format
+msgstr "Parâmetro personalizado inválido"
 msgid "Bad device-uri \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Device-uri \"%s\" inválido!"
 msgid "Bad document-format \"%s\"!"
-msgstr ""
-
+msgstr "Document-format \"%s\" inválido!"
 msgid "Bad job-priority value!"
-msgstr ""
-
+msgstr "Valor job-priority inválido!"
 msgid "Bad job-state value!"
-msgstr ""
-
-#, c-format
+msgstr "Valor job-state inválido!"
 msgid "Bad job-uri attribute \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Atributo job-uri \"%s\" inválido!"
 msgid "Bad notify-pull-method \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Notify-pull-method \"%s\" inválido!"
 msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Notify-recipient-uri URI \"%s\" inválido!"
 msgid "Bad number-up value %d."
-msgstr ""
-
-#, c-format
+msgstr "Valor number-up inválido %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."
-msgstr ""
-
-#, c-format
+msgstr "Valores page-ranges inválidos %d-%d."
 msgid "Bad port-monitor \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Port-monitor \"%s\" inválido!"
 msgid "Bad printer-state value %d!"
-msgstr ""
-
-#, c-format
+msgstr "Valor printer-state inválido %d!"
 msgid "Bad request version number %d.%d!"
-msgstr ""
-
+msgstr "Número de versão pedido inválido %d.%d!"
 msgid "Bad subscription ID!"
-msgstr ""
-
+msgstr "ID de subscrição inválido!"
 msgid "Banners"
-msgstr ""
-
+msgstr "Faixas publicitárias"
 msgid "Cancel RSS Subscription"
-msgstr ""
-
+msgstr "Cancelar subscrição RSS"
 msgid "Change Settings"
-msgstr ""
-
-#, c-format
+msgstr "Alterar especificações"
 msgid "Character set \"%s\" not supported!"
-msgstr ""
-
+msgstr "Conjunto de caracteres \"%s\" não suportado!"
 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\"!"
-msgstr ""
-
+msgstr "Impossível procurar tipo \"%s\"!"
 msgid "Cover open."
-msgstr ""
-
+msgstr "Tampa aberta."
 msgid "Custom"
-msgstr ""
-
+msgstr "Personalizar"
 msgid "Delete Class"
-msgstr ""
-
+msgstr "Apagar classe"
 msgid "Delete Printer"
-msgstr ""
-
-#, c-format
+msgstr "Apagar impressora"
 msgid "Destination \"%s\" is not accepting jobs."
-msgstr ""
-
+msgstr "Destino \"%s\" não está a aceitar trabalhos."
 msgid "Developer almost empty."
-msgstr ""
-
+msgstr "Programador quase vazio."
 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."
-msgstr ""
-
-#, c-format
+msgstr "Porta aberta."
 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"
-msgstr ""
-
-#, c-format
+msgstr "EMERG: Impossível alocar memória para matriz de páginas: %s\n"
 msgid "ERROR: %ld: (canceled:%ld)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %ld: (cancelado:%ld)\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comentário %%IncludeFeature: inválido!\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Comentário %%PageBoundingBox: inválido no ficheiro!\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ficheiro charset inválido %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"
-msgstr ""
-
+msgstr "ERROR: Linha de descrição de tipo de letra inválida: %s\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Orientação de texto inválida %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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impressora de destino não existe!\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"
-msgstr ""
-
+msgstr "ERROR: Detectado comentário %%Pages: em duplicado!\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comando HP-GL/2 inválido; impossível imprimir ficheiro!\n"
 msgid "ERROR: Missing %%EndProlog!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %%EndProlog inexistente!\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Sem comentário %%BoundingBox: no cabeçalho!\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"
-msgstr ""
-
+msgstr "ERROR: Sem páginas!\n"
 msgid "ERROR: Out of paper!\n"
-msgstr ""
-
+msgstr "ERROR: Sem papel!\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"
-msgstr ""
-
+msgstr "ERROR: Ficheiro de impressão não foi aceite (%s)!\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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível adicionar ficheiro %d ao trabalho: %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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível criar ficheiro temporário - %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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível executar 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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível obter atributos do trabalho %d (%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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível localizar impressora '%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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir %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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro \"%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"
-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"
-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"
-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"
-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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível atingir offset %lld no ficheiro - %s\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível aguardar por pictwpstops: %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"
-msgstr ""
-
+msgstr "ERROR: Impossível escrever dados de impressão: %s\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível escrever dados de documento não comprimidos: %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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ordem de ficheiro desconhecida \"%s\"\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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Opção desconhecida \"%s\" com valor \"%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"
-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"
-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"
-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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado excesso doc_printf (%d bytes); a interromper!\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"
-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"
-msgstr ""
-
+msgstr "ERROR: selecção() devolveu %d\n"
 msgid "Edit Configuration File"
-msgstr ""
-
+msgstr "Editar ficheiro de configuração"
 msgid "Empty PPD file!"
-msgstr ""
-
+msgstr "Ficheiro PPD vazio!"
 msgid "Ending Banner"
-msgstr ""
-
+msgstr "Terminar faixa publicitária"
 msgid "Enter old password:"
-msgstr ""
-
+msgstr "Introduza palavra-passe antiga:"
 msgid "Enter password again:"
-msgstr ""
-
+msgstr "Introduza palavra-passe novamente:"
 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"
-msgstr ""
-
+msgstr "Política de Erros"
 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"
-msgstr ""
-
+msgstr "Exportar Impressoras para Samba"
 msgid "FAIL\n"
-msgstr ""
-
-#, c-format
+msgstr "FAIL\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!"
-msgstr ""
-
+msgstr "Temperatura do fusor elevada!"
 msgid "Fuser temperature low!"
-msgstr ""
-
+msgstr "Temperatura do fusor baixa!"
 msgid "General"
-msgstr ""
-
+msgstr "Geral"
 msgid "Got a printer-uri attribute but no job-id!"
-msgstr ""
-
+msgstr "Obtive um atributo printer-uri, mas não job-id!"
 msgid "Help"
-msgstr ""
-
-#, c-format
+msgstr "Ajuda"
 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"
-msgstr ""
-
+msgstr "INFO: Tentativa de ligar ao host %s na porta %d\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"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ligado a %s...\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"
-msgstr ""
-
+msgstr "INFO: Ficheiro de controlo enviado com êxito\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"
-msgstr ""
-
+msgstr "INFO: A formatar página %d...\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"
-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"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada (estado:0x%08x)\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"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada; nova tentativa dentro de 30 segundos...\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"
-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"
-msgstr ""
-
+msgstr "INFO: Impressora está ocupada; nova tentativa dentro de 5 segundos...\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"
-msgstr ""
-
+msgstr "INFO: Impressora tem agora ligação.\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"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A imprimir página %d, %d%% concluído...\n"
 msgid "INFO: Printing page %d...\n"
-msgstr ""
-
+msgstr "INFO: A imprimir página %d...\n"
 msgid "INFO: Ready to print.\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Preparada para imprimir.\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"
-msgstr ""
-
+msgstr "INFO: A enviar ficheiro de controlo (%u bytes)\n"
 msgid "INFO: Sending data\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar dados\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"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar ficheiro de dados (%lld 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"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de impressão enviado, %lld bytes...\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"
-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"
-msgstr ""
-
+msgstr "INFO: A aguardar conclusão do trabalho...\n"
 msgid "Illegal control character"
-msgstr ""
-
+msgstr "Carácter de controlo ilegal"
 msgid "Illegal main keyword string"
-msgstr ""
-
+msgstr "Cadeia de palavra-chave principal ilegal"
 msgid "Illegal option keyword string"
-msgstr ""
-
+msgstr "Cadeia de palavra-chave de opção ilegal"
 msgid "Illegal translation string"
-msgstr ""
-
+msgstr "Cadeia de tradução ilegal"
 msgid "Illegal whitespace character"
-msgstr ""
-
+msgstr "Carácter de espaço em branco ilegal"
 msgid "Ink/toner almost empty."
-msgstr ""
-
+msgstr "Tinta/toner quase vazio."
 msgid "Ink/toner empty!"
-msgstr ""
-
+msgstr "Tinta/toner vazio!"
 msgid "Ink/toner waste bin almost full."
-msgstr ""
-
+msgstr "Receptáculo de tinta/toner quase cheio."
 msgid "Ink/toner waste bin full!"
-msgstr ""
-
+msgstr "Receptáculo de tinta/toner cheio!"
 msgid "Interlock open."
-msgstr ""
-
+msgstr "Bloqueio aberto."
 msgid "Internal error"
-msgstr ""
-
+msgstr "Erro interno"
 msgid "JCL"
-msgstr ""
-
-#, c-format
+msgstr "JCL"
 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!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não existe!"
 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."
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d já cancelado - impossível cancelar."
 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!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d concluído; não é possível alterar!"
 msgid "Job #%d is not complete!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não concluído!"
 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!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não retido!"
 msgid "Job #%s does not exist!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%s não existe!"
 msgid "Job %d not found!"
-msgstr ""
-
+msgstr "Trabalho %d não encontrado!"
 msgid "Job Completed"
-msgstr ""
-
+msgstr "Trabalho concluído"
 msgid "Job Created"
-msgstr ""
-
+msgstr "Trabalho criado"
 msgid "Job Options Changed"
-msgstr ""
-
+msgstr "Opções de trabalho alteradas"
 msgid "Job Stopped"
-msgstr ""
-
+msgstr "Trabalho parado"
 msgid "Job is completed and cannot be changed."
-msgstr ""
-
+msgstr "Trabalho concluído; não é possível alterar."
 msgid "Job operation failed:"
-msgstr ""
-
+msgstr "Operação de trabalho falhou:"
 msgid "Job state cannot be changed."
-msgstr ""
-
+msgstr "Impossível alterar estado do trabalho."
 msgid "Job subscriptions cannot be renewed!"
-msgstr ""
-
+msgstr "Impossível renovar subscrições do trabalho!"
 msgid "Jobs"
-msgstr ""
-
-#, c-format
+msgstr "Trabalhos"
 msgid "Language \"%s\" not supported!"
-msgstr ""
-
+msgstr "Idioma \"%s\" não suportado!"
 msgid "Line longer than the maximum allowed (255 characters)"
-msgstr ""
-
+msgstr "Linha excede máximo permitido (255 caracteres)"
 msgid "List Available Printers"
-msgstr ""
-
+msgstr "Apresentar impressoras disponíveis"
 msgid "Media Size"
-msgstr ""
-
+msgstr "Tamanho do suporte"
 msgid "Media Source"
-msgstr ""
-
+msgstr "Origem do suporte"
 msgid "Media Type"
-msgstr ""
-
+msgstr "Tipo de suporte"
 msgid "Media jam!"
-msgstr ""
-
+msgstr "Suporte encravado!"
 msgid "Media tray almost empty."
-msgstr ""
-
+msgstr "Tabuleiro de suporte quase vazio."
 msgid "Media tray empty!"
-msgstr ""
-
+msgstr "Tabuleiro de suporte vazio!"
 msgid "Media tray missing!"
-msgstr ""
-
+msgstr "Tabuleiro de suporte inexistente!"
 msgid "Media tray needs to be filled."
-msgstr ""
-
+msgstr "É necessário encher o tabuleiro de suporte."
 msgid "Memory allocation error"
-msgstr ""
-
+msgstr "Erro de alocação de memória"
 msgid "Missing PPD-Adobe-4.x header"
-msgstr ""
-
+msgstr "Cabeçalho PPD-Adobe-4.x inexistente"
 msgid "Missing asterisk in column 1"
-msgstr ""
-
-#, c-format
+msgstr "Asterisco inexistente na coluna 1"
 msgid "Missing double quote on line %d!"
-msgstr ""
-
+msgstr "Aspas inexistentes na linha %d!"
 msgid "Missing form variable!"
-msgstr ""
-
+msgstr "Variável de formato inexistente!"
 msgid "Missing notify-subscription-ids attribute!"
-msgstr ""
-
+msgstr "Atributo notify-subscription-ids inexistente!"
 msgid "Missing requesting-user-name attribute!"
-msgstr ""
-
+msgstr "Atributo requesting-user-name inexistente!"
 msgid "Missing required attributes!"
-msgstr ""
-
-#, c-format
+msgstr "Atributos necessários inexistentes!"
 msgid "Missing value on line %d!"
-msgstr ""
-
+msgstr "Valor inexistente na linha %d!"
 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"
-msgstr ""
-
+msgstr "Modificar classe"
 msgid "Modify Printer"
-msgstr ""
-
+msgstr "Modificar impressora"
 msgid "Move All Jobs"
-msgstr ""
-
+msgstr "Mover todos os trabalhos"
 msgid "Move Job"
-msgstr ""
-
-#, c-format
+msgstr "Mover trabalho"
 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"
-msgstr ""
-
+msgstr "NOTICE: Ficheiro de impressão aceite - ID do trabalho desconhecido.\n"
 msgid "NULL PPD file pointer"
-msgstr ""
-
+msgstr "Ponteiro do ficheiro PPD NULL"
 msgid "No"
-msgstr ""
-
+msgstr "Não"
 msgid "No Windows printer drivers are installed!"
-msgstr ""
-
-#, c-format
+msgstr "Sem controladores de impressora Windows instalados!"
 msgid "No active jobs on %s!"
-msgstr ""
-
+msgstr "Sem trabalhos activos em %s!"
 msgid "No attributes in request!"
-msgstr ""
-
+msgstr "Sem atributos no pedido!"
 msgid "No authentication information provided!"
-msgstr ""
-
+msgstr "Sem informações de autenticação fornecidas!"
 msgid "No default printer"
-msgstr ""
-
+msgstr "Sem impressora predefinida"
 msgid "No destinations added."
-msgstr ""
-
+msgstr "Sem destinos adicionados."
 msgid "No file!?!"
-msgstr ""
-
+msgstr "Sem ficheiro!?!"
 msgid "No subscription attributes in request!"
-msgstr ""
-
+msgstr "Sem atributos de subscrição no pedido!"
 msgid "No subscriptions found."
-msgstr ""
-
+msgstr "Sem subscrições."
 msgid "None"
-msgstr ""
-
+msgstr "Sem"
 msgid "Not allowed to print."
-msgstr ""
-
+msgstr "Sem permissão para imprimir."
 msgid "OK"
-msgstr ""
-
+msgstr "OK"
 msgid "OPC almost at end-of-life."
-msgstr ""
-
+msgstr "OPC quase em fim de vida."
 msgid "OPC at end-of-life!"
-msgstr ""
-
+msgstr "OPC em fim de vida!"
 msgid "OpenGroup without a CloseGroup first"
-msgstr ""
-
+msgstr "OpenGroup sem um CloseGroup primeiro"
 msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
-msgstr ""
-
+msgstr "OpenUI/JCLOpenUI sem um CloseUI/JCLCloseUI primeiro"
 msgid "Operation Policy"
-msgstr ""
-
+msgstr "Política de Operação"
 msgid "Options Installed"
-msgstr ""
-
+msgstr "Opções instaladas"
 msgid "Out of toner!"
-msgstr ""
-
+msgstr "Sem toner!"
 msgid "Output Mode"
-msgstr ""
-
+msgstr "Modo de saída"
 msgid "Output bin almost full."
-msgstr ""
-
+msgstr "Receptáculo de saída quase cheio."
 msgid "Output bin full!"
-msgstr ""
-
-#, c-format
+msgstr "Receptáculo de saída cheio!"
 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"
-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"
-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"
-msgstr ""
-
+msgstr "Saída de impressora %s/%s enviada para impressora remota %s em %s\n"
 msgid "Output tray missing!"
-msgstr ""
-
+msgstr "Tabuleiro de saída inexistente!"
 msgid "PASS\n"
-msgstr ""
-
+msgstr "PASS\n"
 msgid "PS Binary Protocol"
-msgstr ""
-
-#, c-format
+msgstr "Protocolo Binário PS"
 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: "
-msgstr ""
-
+msgstr "Palavra-passe para %s requerida para aceder a %s via SAMBA: "
 msgid "Policies"
-msgstr ""
-
+msgstr "Políticas"
 msgid "Print Job:"
-msgstr ""
-
+msgstr "Imprimir trabalho:"
 msgid "Print Test Page"
-msgstr ""
-
+msgstr "Imprimir página de teste"
 msgid "Printer Added"
-msgstr ""
-
+msgstr "Impressora adicionada"
 msgid "Printer Deleted"
-msgstr ""
-
+msgstr "Impressora apagada"
 msgid "Printer Maintenance"
-msgstr ""
-
+msgstr "Manutenção da impressora"
 msgid "Printer Modified"
-msgstr ""
-
+msgstr "Impressora modificada"
 msgid "Printer Stopped"
-msgstr ""
-
+msgstr "Impressora parada"
 msgid "Printer off-line."
-msgstr ""
-
+msgstr "Impressora sem ligação."
 msgid "Printer:"
-msgstr ""
-
+msgstr "Impressora:"
 msgid "Printers"
-msgstr ""
-
+msgstr "Impressoras"
 msgid "Purge Jobs"
-msgstr ""
-
+msgstr "Limpar trabalhos"
 msgid "Quota limit reached."
-msgstr ""
-
+msgstr "Quota atingida."
 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"
-msgstr ""
-
+msgstr "Rejeitar trabalhos"
 msgid "Resolution"
-msgstr ""
-
-#, c-format
+msgstr "Resolução"
 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"
-msgstr ""
-
+msgstr "Servidor reiniciado"
 msgid "Server Security Auditing"
-msgstr ""
-
+msgstr "Auditoria de segurança do servidor"
 msgid "Server Started"
-msgstr ""
-
+msgstr "Servidor iniciado"
 msgid "Server Stopped"
-msgstr ""
-
+msgstr "Servidor parado"
 msgid "Set Allowed Users"
-msgstr ""
-
+msgstr "Especificar utilizadores permitidos"
 msgid "Set As Default"
-msgstr ""
-
+msgstr "Predefinir"
 msgid "Set Class Options"
-msgstr ""
-
+msgstr "Especificar opções de classe"
 msgid "Set Printer Options"
-msgstr ""
-
+msgstr "Especificar opções de impressora"
 msgid "Set Publishing"
-msgstr ""
-
+msgstr "Especificar publicação"
 msgid "Start Class"
-msgstr ""
-
+msgstr "Iniciar classe"
 msgid "Start Printer"
-msgstr ""
-
+msgstr "Iniciar impressora"
 msgid "Starting Banner"
-msgstr ""
-
+msgstr "Iniciar faixa publicitária"
 msgid "Stop Class"
-msgstr ""
-
+msgstr "Parar classe"
 msgid "Stop Printer"
-msgstr ""
-
-#, c-format
+msgstr "Parar impressora"
 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"
-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)!"
-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!"
-msgstr ""
-
+msgstr "Impressora ou classe não partilhadas!"
 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."
-msgstr ""
-
+msgstr "O atributo printer-uri \"%s\" contém caracteres inválidos."
 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."
-msgstr ""
-
+msgstr "Pouco toner."
 msgid "Too many active jobs."
-msgstr ""
-
+msgstr "Demasiados trabalhos activos."
 msgid "Unable to access cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível aceder ao ficheiro cupsd.conf:"
 msgid "Unable to add RSS subscription:"
-msgstr ""
-
+msgstr "Impossível adicionar subscrição RSS:"
 msgid "Unable to add class:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível adicionar classe:"
 msgid "Unable to add job for destination \"%s\"!"
-msgstr ""
-
+msgstr "Impossível adicionar trabalho ao destino \"%s\"!"
 msgid "Unable to add printer:"
-msgstr ""
-
+msgstr "Impossível adicionar impressora:"
 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:"
-msgstr ""
-
+msgstr "Impossível cancelar subscrição RSS:"
 msgid "Unable to change printer-is-shared attribute:"
-msgstr ""
-
+msgstr "Impossível alterar atributo printer-is-shared:"
 msgid "Unable to change printer:"
-msgstr ""
-
+msgstr "Impossível alterar impressora:"
 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)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de recurso de impressora CUPS (%d)!"
 msgid "Unable to copy PPD file - %s!"
-msgstr ""
-
+msgstr "Impossível copiar ficheiro PPD - %s!"
 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)!"
-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)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de controladores de impressora Windows 9x (%d)!"
 msgid "Unable to copy interface script - %s!"
-msgstr ""
-
+msgstr "Impossível copiar script de interface - %s!"
 msgid "Unable to create temporary file:"
-msgstr ""
-
+msgstr "Impossível criar ficheiro temporário:"
 msgid "Unable to delete class:"
-msgstr ""
-
+msgstr "Impossível apagar classe:"
 msgid "Unable to delete printer:"
-msgstr ""
-
+msgstr "Impossível apagar impressora:"
 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!"
-msgstr ""
-
+msgstr "Impossível localizar destino para trabalho!"
 msgid "Unable to get class list:"
-msgstr ""
-
+msgstr "Impossível obter lista de classes:"
 msgid "Unable to get class status:"
-msgstr ""
-
+msgstr "Impossível obter estado da classe:"
 msgid "Unable to get list of printer drivers:"
-msgstr ""
-
+msgstr "Impossível obter lista de recursos da impressora:"
 msgid "Unable to get printer attributes:"
-msgstr ""
-
+msgstr "Impossível obter atributos da impressora:"
 msgid "Unable to get printer list:"
-msgstr ""
-
+msgstr "Impossível obter lista de impressoras:"
 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)!"
-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)!"
-msgstr ""
-
+msgstr "Impossível instalar ficheiros de controladores de impressora Windows 9x (%d)!"
 msgid "Unable to modify class:"
-msgstr ""
-
+msgstr "Impossível modificar classe:"
 msgid "Unable to modify printer:"
-msgstr ""
-
+msgstr "Impossível modificar impressora:"
 msgid "Unable to move job"
-msgstr ""
-
+msgstr "Impossível mover trabalho"
 msgid "Unable to move jobs"
-msgstr ""
-
+msgstr "Impossível mover trabalhos"
 msgid "Unable to open PPD file"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro PPD"
 msgid "Unable to open PPD file:"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro PPD:"
 msgid "Unable to open cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro cupsd.conf:"
 msgid "Unable to print test page:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível imprimir página de teste:"
 msgid "Unable to run \"%s\": %s\n"
-msgstr ""
-
+msgstr "Impossível executar \"%s\": %s\n"
 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)!"
-msgstr ""
-
+msgstr "Impossível definir controlador de impressora Windows (%d)!"
 msgid "Unable to set options:"
-msgstr ""
-
+msgstr "Impossível especificar opções:"
 msgid "Unable to upload cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível carregar ficheiro cupsd.conf:"
 msgid "Unknown"
-msgstr ""
-
-#, c-format
+msgstr "Desconhecida"
 msgid "Unknown printer error (%s)!"
-msgstr ""
-
-#, c-format
+msgstr "Erro de impressora desconhecido (%s)!"
 msgid "Unknown printer-error-policy \"%s\"."
-msgstr ""
-
-#, c-format
+msgstr "Printer-error-policy desconhecida \"%s\"."
 msgid "Unknown printer-op-policy \"%s\"."
-msgstr ""
-
-#, c-format
+msgstr "Printer-op-policy desconhecida \"%s\"."
 msgid "Unsupported compression \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Compressão não suportada \"%s\"!"
 msgid "Unsupported compression attribute %s!"
-msgstr ""
-
-#, c-format
+msgstr "Atributo de compressão não suportado %s!"
 msgid "Unsupported format \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado \"%s\"!"
 msgid "Unsupported format '%s'!"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado '%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"
-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"
-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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "Utilização: snmp [host-or-ip-address]\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"
-msgstr ""
-
+msgstr "WARNING: Impossível criar canal de leitura\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"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Falha ao ler pedido de side-channel!\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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Escolha desconhecida \"%s\" para opção \"%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"
-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!"
-msgstr ""
-
+msgstr "Aviso, sem controladores de impressora Windows 2000 instalados!"
 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"
-msgstr ""
-
+msgstr "interrompido"
 msgid "canceled"
-msgstr ""
-
+msgstr "cancelado"
 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."
-msgstr ""
-
+msgstr "cups-deviced falhou a execução."
 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"
-msgstr ""
-
-#, c-format
+msgstr "cupsaddsmb: Sem ficheiro PPD para impressora \"%s\" - %s\n"
 msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsctl: Opção desconhecida \"%s\"!\n"
 msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr ""
-
+msgstr "cupsctl: Opção desconhecida \"-%c\"!\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"
-msgstr ""
-
-#, c-format
+msgstr "cupsd: Argumento desconhecido \"%s\" - a interromper!\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"
-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"
-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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "cupstestppd: Opção -v incompatível com opção -q.\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"
-msgstr ""
-
+msgstr "periférico para %s: %s\n"
 msgid "held"
-msgstr ""
-
+msgstr "reter"
 msgid "help\t\tget help on commands\n"
-msgstr ""
-
+msgstr "help\t\tobter ajuda sobre comandos\n"
 msgid "idle"
-msgstr ""
-
+msgstr "inactivo"
 msgid "job-printer-uri attribute missing!"
-msgstr ""
-
+msgstr "atributo job-printer-uri inexistente!"
 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"
-msgstr ""
-
+msgstr "lpadmin: PPD esperado após opção '-P'!\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"
-msgstr ""
-
+msgstr "lpadmin: Classe esperada após opção '-r'!\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"
-msgstr ""
-
+msgstr "lpadmin: Descrição esperada após opção '-D'!\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"
-msgstr ""
-
+msgstr "lpadmin: Tipo(s) de ficheiro esperados após opção '-I'!\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"
-msgstr ""
-
+msgstr "lpadmin: Interface esperada após opção '-i'!\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"
-msgstr ""
-
+msgstr "lpadmin: Modelo esperado após opção '-m'!\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"
-msgstr ""
-
+msgstr "lpadmin: Impressora esperada após opção '-p'!\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"
-msgstr ""
-
+msgstr "lpadmin: Impressora ou classe esperadas após opção '-x'!\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"
-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"
-msgstr ""
-
+msgstr "lpadmin: Impressora %s não é membro da classe %s.\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"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível ligar ao servidor: %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"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível criar ficheiro temporário: %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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Opção permitir/negar desconhecida \"%s\"!\n"
 msgid "lpadmin: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Argumento desconhecido '%s'!\n"
 msgid "lpadmin: Unknown option '%c'!\n"
-msgstr ""
-
+msgstr "lpadmin: Opção desconhecida '%c'!\n"
 msgid "lpadmin: Warning - content type list ignored!\n"
-msgstr ""
-
+msgstr "lpadmin: Aviso - lista de tipo de conteúdo ignorada!\n"
 msgid "lpc> "
-msgstr ""
-
-#, c-format
+msgstr "lpc> "
 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"
-msgstr ""
-
-#, c-format
+msgstr "lpinfo: Argumento desconhecido '%s'!\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"
-msgstr ""
-
-#, c-format
+msgstr "lpmove: Impossível ligar ao servidor: %s\n"
 msgid "lpmove: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpmove: Argumento desconhecido '%s'!\n"
 msgid "lpmove: Unknown option '%c'!\n"
-msgstr ""
-
+msgstr "lpmove: Opção desconhecida '%c'!\n"
 msgid "lpoptions: No printers!?!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Sem impressoras!?!\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"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Impossível obter ficheiro PPD para %s: %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"
-msgstr ""
-
+msgstr "lpoptions: Impressora ou classe desconhecidas!\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"
-msgstr ""
-
+msgstr "lppasswd: Ficheiro de palavra-passe ocupado!\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"
-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"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Palavras-passe não correspondem!\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"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Impossível abrir ficheiro de palavra-passe: %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"
-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"
-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"
-msgstr ""
-
+msgstr "lppasswd: utilizador \"%s\" e grupo \"%s\" não existem.\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"
-msgstr ""
-
+msgstr "membros da classe %s:\n"
 msgid "no entries\n"
-msgstr ""
-
+msgstr "sem entradas\n"
 msgid "no system default destination\n"
-msgstr ""
-
+msgstr "sem destino predefinido de sistema\n"
 msgid "notify-events not specified!"
-msgstr ""
-
-#, c-format
+msgstr "notify-events não especificados!"
 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!"
-msgstr ""
-
-#, c-format
+msgstr "notify-subscription-id %d incorrecto!"
 msgid "open of %s failed: %s"
-msgstr ""
-
+msgstr "abertura de %s falhou: %s"
 msgid "pending"
-msgstr ""
-
-#, c-format
+msgstr "pendente"
 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"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s inactiva.  activada desde %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"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s/%s desactivada desde %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"
-msgstr ""
-
+msgstr "impressora %s/%s agora a imprimir %s-%d.  activada desde %s\n"
 msgid "processing"
-msgstr ""
-
-#, c-format
+msgstr "a processar"
 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"
-msgstr ""
-
+msgstr "programador não está em execução\n"
 msgid "scheduler is running\n"
-msgstr ""
-
-#, c-format
+msgstr "programador em execução\n"
 msgid "stat of %s failed: %s"
-msgstr ""
-
+msgstr "estatística de %s falhou: %s"
 msgid "status\t\tshow status of daemon and queue\n"
-msgstr ""
-
+msgstr "status\t\tmostra estado de daemon e fila\n"
 msgid "stopped"
-msgstr ""
-
-#, c-format
+msgstr "parado"
 msgid "system default destination: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "destino predefinido de sistema: %s\n"
 msgid "system default destination: %s/%s\n"
-msgstr ""
-
+msgstr "destino predefinido de sistema: %s/%s\n"
 msgid "unknown"
-msgstr ""
-
+msgstr "desconhecido"
 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"
-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"
@@ -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\"!"
-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!"
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"
-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"
-msgstr "%s: Okänt utskriftsläge \”%s\”!\n"
+msgstr "ERROR: Okänt utskriftsläge \”%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"
@@ -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"
-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"
index 6cc391f403adda52ec3a9cd69998a226f025ea50..54b6676e7a77823f3dc60083a42f861edbb62db2 100644 (file)
@@ -472,7 +472,7 @@ msgid ""
 "      **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
@@ -480,7 +480,7 @@ msgid ""
 "      **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
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"
-msgstr "ERROR: 不支援的 number-up 值 %s,使用 number-up=1!\n"
+msgstr "ERROR: 不支援的 number-up 值 %d,使用 number-up=1!\n"
 
 #, 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"
-msgstr "INFO: 嘗試在“%d”埠上連接主機“%s”\n"
+msgstr "INFO: 嘗試在“%2$d”埠上連接主機“%1$s”\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"
-msgstr "INFO: 正在連接“%d”埠上的“%s”⋯\n"
+msgstr "INFO: 正在連接“%2$d”埠上的“%1$s”⋯\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).
  *
@@ -16,6 +16,9 @@
  *
  * 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)
     {
+      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 0x04 : /* CTRL-D */
       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).
  *
@@ -120,11 +120,10 @@ main(int  argc,                           /* I - Number of command-line args */
     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)
     {
+      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 0x04 : /* CTRL-D */
       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).
@@ -723,5 +723,5 @@ f 0644 root sys $XINETD/cups-lpd init/cups-lpd
 %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).
 #
@@ -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).
 #
@@ -134,12 +134,12 @@ install:  all
        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; \
-               chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs; \
+               chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs || true; \
        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).
  *
@@ -83,6 +83,9 @@
 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;
@@ -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 */
-               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 */
@@ -372,28 +375,6 @@ cupsdAuthorize(cupsd_client_t *con)        /* I - Client connection */
     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;
 
@@ -936,7 +917,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
                    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 */
@@ -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));
-      if ((ptr = strchr(username, '@')) != NULL)
-        *ptr = '\0';                   /* Strip @KDC from the username */
 
       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 */
-  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 */
                {
@@ -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);
-      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 */
@@ -2022,7 +2003,7 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
        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);
 
+ /*
+  * 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...
   */
@@ -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 &&
-          !strcasecmp(username, owner))
+          !strcasecmp(username, ownername))
        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.
@@ -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.
  *
@@ -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 */
+  char         language[7];            /* Language subdirectory, if any */
 
 
  /*
   * 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, '/'))
@@ -3252,8 +3255,10 @@ get_file(cupsd_client_t *con,            /* I  - Client connection */
       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);
 
@@ -3265,7 +3270,7 @@ get_file(cupsd_client_t *con,             /* I  - Client connection */
   * 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))
@@ -3274,11 +3279,8 @@ get_file(cupsd_client_t *con,            /* I  - Client connection */
     * 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';
@@ -3289,6 +3291,7 @@ get_file(cupsd_client_t *con,             /* I  - Client connection */
       * 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)
@@ -3304,52 +3307,86 @@ get_file(cupsd_client_t *con,           /* I  - Client connection */
 
   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);
-    }
+
+#ifdef HAVE_JAVA
+      if (status)
+      {
+       strlcpy(ptr, "index.class", plen);
+       status = stat(filename, filestats);
+      }
 #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
-    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
-    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 */
+
+    }
+    while (status && language[0]);
   }
 
   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.
  *
@@ -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 */
-  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 */
@@ -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).
  *
@@ -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).
  *
@@ -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).
  *
@@ -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).
  *
@@ -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,
-                            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);
@@ -396,8 +397,9 @@ main(int  argc,                             /* I - Number of command-line args */
   * 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...
@@ -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    *printer,    /* I - Printer name */
             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__
+  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));
+  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);
 
-  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);
@@ -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.
  *
 
 #include "cupsd.h"
 
-#ifdef HAVE_KRB5_H
-#  include <krb5.h>
-#endif /* HAVE_KRB5_H */
-
 #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)
   {
-    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;
   }
 
@@ -8262,9 +8272,12 @@ save_krb5_creds(cupsd_client_t *con,     /* I - Client connection */
   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__
@@ -8297,12 +8310,35 @@ save_krb5_creds(cupsd_client_t *con,    /* I - Client connection */
                                &(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;
   }
 
+  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...
   */
@@ -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).
  *
@@ -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") ||
-          !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;
 
@@ -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.
@@ -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).
  *
@@ -152,6 +152,18 @@ main(int  argc,                            /* I - Number of command-line args */
 #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...
   */
@@ -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).
  *
@@ -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).
  *
@@ -48,12 +48,15 @@ cupsdFindQuota(
 {
   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 ((ptr = strchr(match.username, '@')) != NULL)
+    *ptr = '\0';                       /* Strip @domain/@KDC */
 
   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 */
+  char         *ptr;                   /* Pointer into 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));
+  if ((ptr = strchr(q->username, '@')) != NULL)
+    *ptr = '\0';                       /* Strip @domain/@KDC */
 
   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).
  *
@@ -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).
  *
@@ -981,7 +981,8 @@ main(int  argc,                             /* I - Number of command-line args */
          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)
            {
@@ -2393,8 +2394,30 @@ test_raster(ppd_file_t *ppd,             /* I - PPD file */
 
     return (0);
   }
-  else
+
+ /*
+  * Try a test of custom page size code, if available...
+  */
+
+  if (!ppdPageSize(ppd, "Custom.612x792"))
     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>
-<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>
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>
+<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
@@ -13,13 +16,6 @@ SRC="/images/button-export-samba.gif" ALT="Exportar impresoras a Samba"
 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>
@@ -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>
-{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>
 
@@ -77,3 +73,16 @@ CLASS="button"></A>
 
 </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}}
 
-<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>
-{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>
 :
@@ -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-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=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>
-</P>
+</TR>
+</TABLE></P>
 </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}}
 
-<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">
-<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>
@@ -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}">
-<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>
 :
@@ -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}">
-<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>
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
-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"
@@ -43,7 +43,7 @@ onChange="select_printers()"> Exportar todas las impresoras
 </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>
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
-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>