Imported Upstream version 2.2.3 16/149716/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 13 Sep 2017 02:53:50 +0000 (11:53 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 13 Sep 2017 02:53:56 +0000 (11:53 +0900)
Change-Id: I3d6e094a6bcee5cd32563c3b4b9e77d653a4949d
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
49 files changed:
CHANGES.txt
INSTALL.txt
Makefile
README.txt
backend/ipp.c
backend/runloop.c
configure
configure.ac
cups/cups.h
cups/ipp-support.c
cups/ipp.c
cups/language-private.h
cups/language.c
cups/ppd-cache.c
cups/ppd-localize.c
cups/ppd-private.h
cups/ppd.c
cups/pwg-media.c
cups/testppd.c
cups/tls-darwin.c
locale/cups.pot
locale/cups.strings
locale/cups_ca.po
locale/cups_cs.po
locale/cups_de.po
locale/cups_es.po
locale/cups_fr.po
locale/cups_it.po
locale/cups_ja.po
locale/cups_pt_BR.po
locale/cups_ru.po
locale/po2strings.c
man/mantohtml.c
packaging/cups.spec
scheduler/client.c
scheduler/conf.c
scheduler/cups-driverd.cxx
scheduler/job.c
scheduler/main.c
scheduler/printers.c
scheduler/process.c
templates/de/jobs-header.tmpl
templates/es/jobs-header.tmpl
templates/ja/jobs-header.tmpl
templates/jobs-header.tmpl
templates/pt_BR/jobs-header.tmpl
templates/ru/jobs-header.tmpl
vcnet/config.h
xcode/config.h

index 4be9f3f..769a61a 100644 (file)
@@ -1,6 +1,33 @@
-CHANGES.txt - 2.2.2 - 2017-01-17
+CHANGES.txt - 2.2.3 - 2017-03-28
 --------------------------------
 
+CHANGES IN CUPS V2.2.3
+
+       - The IPP backend could get into an infinite loop for certain errors,
+         causing a hung queue (<rdar://problem/28008717>)
+       - The scheduler could pause responding to client requests in order to
+         save state changes to disk (<rdar://problem/28690656>)
+       - Added support for PPD finishing keywords (Issue #4960, Issue #4961,
+         Issue #4962)
+       - The IPP backend did not send a media-col attribute for just the source
+         or type (Issue #4963)
+       - IPP Everywhere print queues did not always support all print qualities
+         supported by the printer (Issue #4953)
+       - IPP Everywhere print queues did not always support all media types
+         supported by the printer (Issue #4953)
+       - The IPP Everywhere PPD generator did not return useful error messages
+         (Issue #4954)
+       - The IPP Everywhere finishings support did not work correctly with
+         common UI or command-line options (Issue #4976)
+        - Fixed an error handling issue for the network backends (Issue #4979)
+       - The default cupsd.conf file did not work on systems compiled without
+         Kerberos support (Issue #4947)
+       - The "reprint job" option was not available for some canceled jobs
+         (Issue #4915)
+       - Updated the job listing in the web interface (Issue #4978)
+       - Fixed some localization issues on macOS (<rdar://problem/27245567>)
+
+
 CHANGES IN CUPS V2.2.2
 
        - Fixed some issues with the Zebra ZPL printer driver (Issue #4898)
index fc82b5a..b2996cd 100644 (file)
@@ -1,4 +1,4 @@
-INSTALL - CUPS v2.2.2 - 2017-01-17
+INSTALL - CUPS v2.2.3 - 2017-03-28
 ----------------------------------
 
 This file describes how to compile and install CUPS from source code. For more
index 20cd313..afc90ce 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -317,7 +317,7 @@ EPMFLAGS    =       -v --output-dir dist $(EPMARCH)
 bsd deb epm pkg rpm slackware:
        epm $(EPMFLAGS) -f $@ cups packaging/cups.list
 
-.PHONEY:       dist
+.PHONY:        dist
 dist:  all
        $(RM) -r dist
        $(MAKE) $(MFLAGS) epm
index ee5fb66..a6a6079 100644 (file)
@@ -1,4 +1,4 @@
-README - CUPS v2.2.2 - 2017-01-17
+README - CUPS v2.2.3 - 2017-03-28
 ---------------------------------
 
 Looking for compile instructions?  Read the file "INSTALL.txt" instead...
index 6eefd14..685d4d9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * IPP backend for CUPS.
  *
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -1469,7 +1469,7 @@ main(int  argc,                           /* I - Number of command-line args */
 
   while (!job_canceled && validate_job)
   {
-    request = new_request(IPP_VALIDATE_JOB, version, uri, argv[2],
+    request = new_request(IPP_OP_VALIDATE_JOB, version, uri, argv[2],
                           monitor.job_name, num_options, options, compression,
                          copies_sup ? copies : 1, document_format, pc, ppd,
                          media_col_sup, doc_handling_sup, print_color_mode_sup);
@@ -1533,6 +1533,8 @@ main(int  argc,                           /* I - Number of command-line args */
     else if (ipp_status < IPP_REDIRECTION_OTHER_SITE ||
              ipp_status == IPP_BAD_REQUEST)
       break;
+    else if (job_auth == NULL && ipp_status > IPP_BAD_REQUEST)
+      goto cleanup;
   }
 
  /*
@@ -2216,7 +2218,7 @@ main(int  argc,                           /* I - Number of command-line args */
     return (CUPS_BACKEND_HOLD);
   else if (ipp_status == IPP_INTERNAL_ERROR)
     return (CUPS_BACKEND_STOP);
-  else if (ipp_status == IPP_CONFLICT)
+  else if (ipp_status == IPP_CONFLICT || ipp_status == IPP_STATUS_ERROR_REQUEST_ENTITY || ipp_status == IPP_STATUS_ERROR_REQUEST_VALUE)
     return (CUPS_BACKEND_FAILED);
   else if (ipp_status == IPP_REQUEST_VALUE ||
           ipp_status == IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES ||
index baa3462..13e5225 100644 (file)
@@ -77,7 +77,7 @@ backendDrainOutput(int print_fd,      /* I - Print file descriptor */
       * Read error - bail if we don't see EAGAIN or EINTR...
       */
 
-      if (errno != EAGAIN || errno != EINTR)
+      if (errno != EAGAIN && errno != EINTR)
       {
        fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
        _cupsLangPrintFilter(stderr, "ERROR", _("Unable to read print data."));
@@ -305,7 +305,7 @@ backendRunLoop(
         * Read error - bail if we don't see EAGAIN or EINTR...
        */
 
-       if (errno != EAGAIN || errno != EINTR)
+       if (errno != EAGAIN && errno != EINTR)
        {
          fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
          _cupsLangPrintFilter(stderr, "ERROR",
index 1788f33..51cb587 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for CUPS 2.2.2.
+# Generated by GNU Autoconf 2.68 for CUPS 2.2.3.
 #
 # Report bugs to <https://github.com/apple/cups/issues>.
 #
@@ -560,8 +560,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='CUPS'
 PACKAGE_TARNAME='cups'
-PACKAGE_VERSION='2.2.2'
-PACKAGE_STRING='CUPS 2.2.2'
+PACKAGE_VERSION='2.2.3'
+PACKAGE_STRING='CUPS 2.2.3'
 PACKAGE_BUGREPORT='https://github.com/apple/cups/issues'
 PACKAGE_URL='https://www.cups.org/'
 
@@ -1448,7 +1448,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures CUPS 2.2.2 to adapt to many kinds of systems.
+\`configure' configures CUPS 2.2.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1509,7 +1509,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of CUPS 2.2.2:";;
+     short | recursive ) echo "Configuration of CUPS 2.2.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1689,7 +1689,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-CUPS configure 2.2.2
+CUPS configure 2.2.3
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2153,7 +2153,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by CUPS $as_me 2.2.2, which was
+It was created by CUPS $as_me 2.2.3, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2527,7 +2527,7 @@ esac
 ac_config_headers="$ac_config_headers config.h"
 
 
-CUPS_VERSION="2.2.2"
+CUPS_VERSION="2.2.3"
 CUPS_REVISION=""
 CUPS_BUILD="cups-$CUPS_VERSION"
 
@@ -10748,7 +10748,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by CUPS $as_me 2.2.2, which was
+This file was extended by CUPS $as_me 2.2.3, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10811,7 +10811,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-CUPS config.status 2.2.2
+CUPS config.status 2.2.3
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
index 7369e0f..ad3ec8e 100644 (file)
@@ -1,7 +1,7 @@
 dnl
 dnl Configuration script for CUPS.
 dnl
-dnl Copyright 2007-2016 by Apple Inc.
+dnl Copyright 2007-2017 by Apple Inc.
 dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
 dnl
 dnl These coded instructions, statements, and computer programs are the
@@ -15,7 +15,7 @@ dnl We need at least autoconf 2.60...
 AC_PREREQ(2.60)
 
 dnl Package name and version...
-AC_INIT([CUPS], [2.2.2], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
+AC_INIT([CUPS], [2.2.3], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
 
 sinclude(config-scripts/cups-opsys.m4)
 sinclude(config-scripts/cups-common.m4)
index 06e2f9b..3205dd8 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * API definitions for CUPS.
  *
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products.
  *
  * These coded instructions, statements, and computer programs are the
@@ -47,10 +47,10 @@ extern "C" {
  * Constants...
  */
 
-#  define CUPS_VERSION                 2.0202
+#  define CUPS_VERSION                 2.0203
 #  define CUPS_VERSION_MAJOR           2
 #  define CUPS_VERSION_MINOR           2
-#  define CUPS_VERSION_PATCH           2
+#  define CUPS_VERSION_PATCH           3
 
 #  define CUPS_BC_FD                   3
                                        /* Back-channel file descriptor for
index b3f3811..b49ac0d 100644 (file)
@@ -897,12 +897,14 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
     "k-octets",
     "k-octets-processed",
     "last-document",
+    "materials-col-actual",            /* IPP 3D */
     "media-actual",
     "media-col-actual",
     "media-input-tray-check-actual",
     "media-sheets",
     "media-sheets-completed",
     "more-info",
+    "multiple-object-handling-actual", /* IPP 3D */
     "number-up-actual",
     "orientation-requested-actual",
     "output-bin-actual",
@@ -914,12 +916,17 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
     "pages",
     "pages-completed",
     "pages-completed-current-copy",
+    "platform-temperature-actual",     /* IPP 3D */
     "presentation-direction-number-up-actual",
+    "print-accuracy-actual",           /* IPP 3D */
+    "print-base-actual",               /* IPP 3D */
     "print-color-mode-actual",
     "print-content-optimize-actual",
+    "print-objects-actual",            /* IPP 3D */
     "print-quality-actual",
     "print-rendering-intent-actual",
     "print-scaling-actual",            /* IPP Paid Printing */
+    "print-supports-actual",           /* IPP 3D */
     "printer-resolution-actual",
     "printer-up-time",
     "separator-sheets-actual",
@@ -974,6 +981,20 @@ ippCreateRequestedArray(ipp_t *request)    /* I - IPP request */
     "insert-sheet",
     "insert-sheet-default",
     "insert-sheet-supported",
+    "material-amount-units-supported", /* IPP 3D */
+    "material-diameter-supported",     /* IPP 3D */
+    "material-purpose-supported",      /* IPP 3D */
+    "material-rate-supported",         /* IPP 3D */
+    "material-rate-units-supported",   /* IPP 3D */
+    "material-shell-thickness-supported",/* IPP 3D */
+    "material-temperature-supported",  /* IPP 3D */
+    "material-type-supported",         /* IPP 3D */
+    "materials-col",                   /* IPP 3D */
+    "materials-col-database",          /* IPP 3D */
+    "materials-col-default",           /* IPP 3D */
+    "materials-col-ready",             /* IPP 3D */
+    "materials-col-supported",         /* IPP 3D */
+    "max-materials-col-supported",     /* IPP 3D */
     "max-stitching-locations-supported",
     "media",
     "media-back-coating-supported",
@@ -1006,6 +1027,9 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
     "multiple-document-handling",
     "multiple-document-handling-default",
     "multiple-document-handling-supported",
+    "multiple-object-handling",                /* IPP 3D */
+    "multiple-object-handling-default",        /* IPP 3D */
+    "multiple-object-handling-supported",/* IPP 3D */
     "number-up",
     "number-up-default",
     "number-up-supported",
@@ -1034,15 +1058,27 @@ ippCreateRequestedArray(ipp_t *request) /* I - IPP request */
     "pdl-init-file-name-subdirectory-supported",
     "pdl-init-file-name-supported",
     "pdl-init-file-supported",
+    "platform-temperature",            /* IPP 3D */
+    "platform-temperature-default",    /* IPP 3D */
+    "platform-temperature-supported",  /* IPP 3D */
     "presentation-direction-number-up",
     "presentation-direction-number-up-default",
     "presentation-direction-number-up-supported",
+    "print-accuracy",                  /* IPP 3D */
+    "print-accuracy-default",          /* IPP 3D */
+    "print-accuracy-supported",                /* IPP 3D */
+    "print-base",                      /* IPP 3D */
+    "print-base-default",              /* IPP 3D */
+    "print-base-supported",            /* IPP 3D */
     "print-color-mode",
     "print-color-mode-default",
     "print-color-mode-supported",
     "print-content-optimize",
     "print-content-optimize-default",
     "print-content-optimize-supported",
+    "print-objects",                   /* IPP 3D */
+    "print-objects-default",           /* IPP 3D */
+    "print-objects-supported",         /* IPP 3D */
     "print-quality",
     "print-quality-default",
     "print-quality-supported",
@@ -1052,6 +1088,9 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
     "print-scaling",                   /* IPP Paid Printing */
     "print-scaling-default",           /* IPP Paid Printing */
     "print-scaling-supported",         /* IPP Paid Printing */
+    "print-supports",                  /* IPP 3D */
+    "print-supports-default",          /* IPP 3D */
+    "print-supports-supported",                /* IPP 3D */
     "printer-resolution",
     "printer-resolution-default",
     "printer-resolution-supported",
@@ -1166,10 +1205,12 @@ ippCreateRequestedArray(ipp_t *request) /* I - IPP request */
     "job-state-reasons",
     "job-uri",
     "job-uuid",
+    "materials-col-actual",            /* IPP 3D */
     "media-actual",
     "media-col-actual",
     "media-check-input-tray-actual",
     "multiple-document-handling-actual",
+    "multiple-object-handling-actual", /* IPP 3D */
     "number-of-documents",
     "number-of-intervening-jobs",
     "number-up-actual",
@@ -1181,12 +1222,17 @@ ippCreateRequestedArray(ipp_t *request) /* I - IPP request */
     "page-delivery-actual",
     "page-order-received-actual",
     "page-ranges-actual",
+    "platform-temperature-actual",     /* IPP 3D */
     "presentation-direction-number-up-actual",
+    "print-accuracy-actual",           /* IPP 3D */
+    "print-base-actual",               /* IPP 3D */
     "print-color-mode-actual",
     "print-content-optimize-actual",
+    "print-objects-actual",            /* IPP 3D */
     "print-quality-actual",
     "print-rendering-intent-actual",
     "print-scaling-actual",            /* IPP Paid Printing */
+    "print-supports-actual",           /* IPP 3D */
     "printer-resolution-actual",
     "separator-sheets-actual",
     "sheet-collate-actual",
@@ -1208,6 +1254,7 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
   };
   static const char * const job_template[] =
   {                                    /* job-template group */
+    "accuracy-units-supported",                /* IPP 3D */
     "confirmation-sheet-print",                /* IPP FaxOut */
     "confirmation-sheet-print-default",
     "copies",
@@ -1315,6 +1362,20 @@ ippCreateRequestedArray(ipp_t *request)  /* I - IPP request */
     "job-sheets-default",
     "job-sheets-supported",
     "logo-uri-schemes-supported",
+    "material-amount-units-supported", /* IPP 3D */
+    "material-diameter-supported",     /* IPP 3D */
+    "material-purpose-supported",      /* IPP 3D */
+    "material-rate-supported",         /* IPP 3D */
+    "material-rate-units-supported",   /* IPP 3D */
+    "material-shell-thickness-supported",/* IPP 3D */
+    "material-temperature-supported",  /* IPP 3D */
+    "material-type-supported",         /* IPP 3D */
+    "materials-col",                   /* IPP 3D */
+    "materials-col-database",          /* IPP 3D */
+    "materials-col-default",           /* IPP 3D */
+    "materials-col-ready",             /* IPP 3D */
+    "materials-col-supported",         /* IPP 3D */
+    "max-materials-col-supported",     /* IPP 3D */
     "max-save-info-supported",
     "max-stitching-locations-supported",
     "media",
@@ -1348,6 +1409,9 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
     "multiple-document-handling",
     "multiple-document-handling-default",
     "multiple-document-handling-supported",
+    "multiple-object-handling",                /* IPP 3D */
+    "multiple-object-handling-default",        /* IPP 3D */
+    "multiple-object-handling-supported",/* IPP 3D */
     "number-of-retries",               /* IPP FaxOut */
     "number-of-retries-default",
     "number-of-retries-supported",
@@ -1385,15 +1449,27 @@ ippCreateRequestedArray(ipp_t *request) /* I - IPP request */
     "pdl-init-file-name-subdirectory-supported",
     "pdl-init-file-name-supported",
     "pdl-init-file-supported",
+    "platform-temperature",            /* IPP 3D */
+    "platform-temperature-default",    /* IPP 3D */
+    "platform-temperature-supported",  /* IPP 3D */
     "presentation-direction-number-up",
     "presentation-direction-number-up-default",
     "presentation-direction-number-up-supported",
+    "print-accuracy",                  /* IPP 3D */
+    "print-accuracy-default",          /* IPP 3D */
+    "print-accuracy-supported",                /* IPP 3D */
+    "print-base",                      /* IPP 3D */
+    "print-base-default",              /* IPP 3D */
+    "print-base-supported",            /* IPP 3D */
     "print-color-mode",
     "print-color-mode-default",
     "print-color-mode-supported",
     "print-content-optimize",
     "print-content-optimize-default",
     "print-content-optimize-supported",
+    "print-objects",                   /* IPP 3D */
+    "print-objects-default",           /* IPP 3D */
+    "print-objects-supported",         /* IPP 3D */
     "print-quality",
     "print-quality-default",
     "print-quality-supported",
@@ -1403,6 +1479,9 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
     "print-scaling",                   /* IPP Paid Printing */
     "print-scaling-default",           /* IPP Paid Printing */
     "print-scaling-supported",         /* IPP Paid Printing */
+    "print-supports",                  /* IPP 3D */
+    "print-supports-default",          /* IPP 3D */
+    "print-supports-supported",                /* IPP 3D */
     "printer-resolution",
     "printer-resolution-default",
     "printer-resolution-supported",
@@ -1533,6 +1612,7 @@ ippCreateRequestedArray(ipp_t *request)   /* I - IPP request */
     "pages-per-minute",
     "pages-per-minute-color",
     "pdf-k-octets-supported",          /* CUPS extension */
+    "pdf-features-supported",          /* IPP 3D */
     "pdf-versions-supported",          /* CUPS extension */
     "pdl-override-supported",
     "port-monitor",                    /* CUPS extension */
@@ -2045,7 +2125,7 @@ ippOpString(ipp_op_t op)          /* I - Operation ID */
   * See if the operation ID is a known value...
   */
 
-  if (op >= IPP_OP_PRINT_JOB && op <= IPP_OP_VALIDATE_DOCUMENT)
+  if (op >= IPP_OP_PRINT_JOB && op < (ipp_op_t)(sizeof(ipp_std_ops) / sizeof(ipp_std_ops[0])))
     return (ipp_std_ops[op]);
   else if (op == IPP_OP_PRIVATE)
     return ("windows-ext");
index b2f8bb7..817c9d5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Internet Printing Protocol functions for CUPS.
  *
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -2570,13 +2570,16 @@ ippGetString(ipp_attribute_t *attr,     /* I - IPP attribute */
              int             element,  /* I - Value number (0-based) */
             const char      **language)/* O - Language code (@code NULL@ for don't care) */
 {
+  ipp_tag_t    tag;                    /* Value tag */
+
+
  /*
   * Range check input...
   */
 
-  if (!attr || element < 0 || element >= attr->num_values ||
-      (attr->value_tag != IPP_TAG_TEXTLANG && attr->value_tag != IPP_TAG_NAMELANG &&
-       (attr->value_tag < IPP_TAG_TEXT || attr->value_tag > IPP_TAG_MIMETYPE)))
+  tag = ippGetValueTag(attr);
+
+  if (!attr || element < 0 || element >= attr->num_values || (tag != IPP_TAG_TEXTLANG && tag != IPP_TAG_NAMELANG && (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE)))
     return (NULL);
 
  /*
index 291bf09..49e4b71 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Private localization support for CUPS.
  *
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2006 by Easy Software Products.
  *
  * These coded instructions, statements, and computer programs are the
@@ -22,6 +22,9 @@
 
 #  include <stdio.h>
 #  include <cups/transcode.h>
+#  ifdef __APPLE__
+#    include <CoreFoundation/CoreFoundation.h>
+#  endif /* __APPLE__ */
 
 #  ifdef __cplusplus
 extern "C" {
@@ -51,8 +54,8 @@ typedef struct _cups_message_s                /**** Message catalog entry ****/
  */
 
 #  ifdef __APPLE__
-extern const char      *_cupsAppleLanguage(const char *locale, char *language,
-                                           size_t langsize);
+extern const char      *_cupsAppleLanguage(const char *locale, char *language, size_t langsize);
+extern const char      *_cupsAppleLocale(CFStringRef languageName, char *locale, size_t localesize);
 #  endif /* __APPLE__ */
 extern void            _cupsCharmapFlush(void);
 extern const char      *_cupsEncodingName(cups_encoding_t encoding);
index bf38d19..f3a3496 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * I18N/language support for CUPS.
  *
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products.
  *
  * These coded instructions, statements, and computer programs are the
@@ -118,11 +118,13 @@ typedef struct
 } _apple_language_locale_t;
 
 static const _apple_language_locale_t apple_language_locale[] =
-{                                      /* Locale to language ID LUT */
-  { "en",      "en_US" },
-  { "nb",      "no" },
-  { "zh-Hans", "zh_CN" },
-  { "zh-Hant", "zh_TW" }
+{                                      /* Language to locale ID LUT */
+  { "en",         "en_US" },
+  { "nb",         "no" },
+  { "nb_NO",      "no" },
+  { "zh-Hans",    "zh_CN" },
+  { "zh-Hant",    "zh_TW" },
+  { "zh-Hant_CN", "zh_TW" }
 };
 #endif /* __APPLE__ */
 
@@ -239,6 +241,75 @@ _cupsAppleLanguage(const char *locale,     /* I - Locale ID */
 
   return (language);
 }
+
+
+/*
+ * '_cupsAppleLocale()' - Get the locale associated with an Apple language ID.
+ */
+
+const char *                                   /* O - Locale */
+_cupsAppleLocale(CFStringRef languageName,     /* I - Apple language ID */
+                 char        *locale,          /* I - Buffer for locale */
+                size_t      localesize)        /* I - Size of buffer */
+{
+  int          i;                      /* Looping var */
+  CFStringRef  localeName;             /* Locale as a CF string */
+
+
+  localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(kCFAllocatorDefault, languageName);
+
+  if (localeName)
+  {
+   /*
+    * Copy the locale name and tweak as needed...
+    */
+
+    if (!CFStringGetCString(localeName, locale, (CFIndex)localesize, kCFStringEncodingASCII))
+      *locale = '\0';
+
+    CFRelease(localeName);
+
+   /*
+    * Map new language identifiers to locales...
+    */
+
+    for (i = 0;
+        i < (int)(sizeof(apple_language_locale) /
+                  sizeof(apple_language_locale[0]));
+        i ++)
+    {
+      if (!strcmp(locale, apple_language_locale[i].language))
+      {
+       strlcpy(locale, apple_language_locale[i].locale, localesize);
+       break;
+      }
+    }
+  }
+  else
+  {
+   /*
+    * Just try the Apple language name...
+    */
+
+    if (!CFStringGetCString(languageName, locale, (CFIndex)localesize, kCFStringEncodingASCII))
+      *locale = '\0';
+  }
+
+  if (!*locale)
+    return (NULL);
+
+ /*
+  * Convert language subtag into region subtag...
+  */
+
+  if (locale[2] == '-')
+    locale[2] = '_';
+
+  if (!strchr(locale, '.'))
+    strlcat(locale, ".UTF-8", localesize);
+
+  return (locale);
+}
 #endif /* __APPLE__ */
 
 
@@ -1134,13 +1205,11 @@ _cupsMessageNew(void *context)          /* I - User data */
 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 = NULL;
                                        /* List of localization data */
   CFStringRef          languageName;   /* Current name */
-  CFStringRef          localeName;     /* Canonical from of name */
   char                 *lang;          /* LANG environment variable */
   _cups_globals_t      *cg = _cupsGlobals();
                                        /* Pointer to library globals */
@@ -1225,49 +1294,11 @@ appleLangDefault(void)
        if (languageName &&
            CFGetTypeID(languageName) == CFStringGetTypeID())
        {
-         localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(
-                          kCFAllocatorDefault, languageName);
-
-         if (localeName)
-         {
-           CFStringGetCString(localeName, cg->language, sizeof(cg->language),
-                              kCFStringEncodingASCII);
-           CFRelease(localeName);
-
+         if (_cupsAppleLocale(languageName, cg->language, sizeof(cg->language)))
            DEBUG_printf(("3appleLangDefault: cg->language=\"%s\"",
                          cg->language));
-
-          /*
-           * Map new language identifiers to locales...
-           */
-
-           for (i = 0;
-                i < (int)(sizeof(apple_language_locale) /
-                          sizeof(apple_language_locale[0]));
-                i ++)
-           {
-             if (!strcmp(cg->language, apple_language_locale[i].language))
-             {
-               DEBUG_printf(("3appleLangDefault: mapping \"%s\" to \"%s\"...",
-                             cg->language, apple_language_locale[i].locale));
-               strlcpy(cg->language, apple_language_locale[i].locale,
-                       sizeof(cg->language));
-               break;
-             }
-           }
-
-          /*
-           * Convert language subtag into region subtag...
-           */
-
-           if (cg->language[2] == '-')
-             cg->language[2] = '_';
-
-           if (!strchr(cg->language, '.'))
-             strlcat(cg->language, ".UTF-8", sizeof(cg->language));
-         }
          else
-           DEBUG_puts("3appleLangDefault: Unable to get localeName.");
+           DEBUG_puts("3appleLangDefault: Unable to get locale.");
        }
       }
 
@@ -1371,10 +1402,11 @@ appleMessageLoad(const char *locale)    /* I - Locale ID */
       locale = "Japanese";
     else if (!strncmp(locale, "es", 2))
       locale = "Spanish";
-    else if (!strcmp(locale, "zh_HK"))
+    else if (!strcmp(locale, "zh_HK") || !strncmp(locale, "zh-Hant", 7))
     {
      /*
       * <rdar://problem/22130168>
+      * <rdar://problem/27245567>
       *
       * Try zh_TW first, then zh...  Sigh...
       */
index e8b05e4..e712341 100644 (file)
  * Local functions...
  */
 
+static void    pwg_add_finishing(cups_array_t *finishings, ipp_finishings_t template, const char *name, const char *value);
 static int     pwg_compare_finishings(_pwg_finishings_t *a,
                                       _pwg_finishings_t *b);
 static void    pwg_free_finishings(_pwg_finishings_t *f);
-static void    pwg_free_material(_pwg_material_t *m);
 static void    pwg_ppdize_name(const char *ipp, char *name, size_t namesize);
 static void    pwg_ppdize_resolution(ipp_attribute_t *attr, int element, int *xres, int *yres, char *name, size_t namesize);
 static void    pwg_unppdize_name(const char *ppd, char *name, size_t namesize,
@@ -49,21 +49,20 @@ static void pwg_unppdize_name(const char *ppd, char *name, size_t namesize,
  * attributes and values and adds them to the specified IPP request.
  */
 
-int                                            /* O - New number of copies */
-_cupsConvertOptions(ipp_t           *request,  /* I - IPP request */
-                    ppd_file_t      *ppd,      /* I - PPD file */
-                   _ppd_cache_t    *pc,        /* I - PPD cache info */
-                   ipp_attribute_t *media_col_sup,
-                                               /* I - media-col-supported values */
-                   ipp_attribute_t *doc_handling_sup,
-                                               /* I - multiple-document-handling-supported values */
-                   ipp_attribute_t *print_color_mode_sup,
-                                               /* I - Printer supports print-color-mode */
-                   const char    *user,        /* I - User info */
-                   const char    *format,      /* I - document-format value */
-                   int           copies,       /* I - Number of copies */
-                   int           num_options,  /* I - Number of options */
-                   cups_option_t *options)     /* I - Options */
+int                                    /* O - New number of copies */
+_cupsConvertOptions(
+    ipp_t           *request,          /* I - IPP request */
+    ppd_file_t      *ppd,              /* I - PPD file */
+    _ppd_cache_t    *pc,               /* I - PPD cache info */
+    ipp_attribute_t *media_col_sup,    /* I - media-col-supported values */
+    ipp_attribute_t *doc_handling_sup, /* I - multiple-document-handling-supported values */
+    ipp_attribute_t *print_color_mode_sup,
+                                       /* I - Printer supports print-color-mode */
+    const char    *user,               /* I - User info */
+    const char    *format,             /* I - document-format value */
+    int           copies,              /* I - Number of copies */
+    int           num_options,         /* I - Number of options */
+    cups_option_t *options)            /* I - Options */
 {
   int          i;                      /* Looping var */
   const char   *keyword,               /* PWG keyword */
@@ -198,41 +197,42 @@ _cupsConvertOptions(ipp_t           *request,     /* I - IPP request */
   if ((keyword = cupsGetOption("PageSize", num_options, options)) == NULL)
     keyword = cupsGetOption("media", num_options, options);
 
-  if ((size = _ppdCacheGetSize(pc, keyword)) != NULL)
+  media_source = _ppdCacheGetSource(pc, cupsGetOption("InputSlot", num_options, options));
+  media_type   = _ppdCacheGetType(pc, cupsGetOption("MediaType", num_options, options));
+  size         = _ppdCacheGetSize(pc, keyword);
+
+  if (size || media_source || media_type)
   {
    /*
     * Add a media-col value...
     */
 
-    media_size = ippNew();
-    ippAddInteger(media_size, IPP_TAG_ZERO, IPP_TAG_INTEGER,
-                 "x-dimension", size->width);
-    ippAddInteger(media_size, IPP_TAG_ZERO, IPP_TAG_INTEGER,
-                 "y-dimension", size->length);
-
     media_col = ippNew();
-    ippAddCollection(media_col, IPP_TAG_ZERO, "media-size", media_size);
 
-    media_source = _ppdCacheGetSource(pc, cupsGetOption("InputSlot",
-                                                       num_options,
-                                                       options));
-    media_type   = _ppdCacheGetType(pc, cupsGetOption("MediaType",
-                                                     num_options,
-                                                     options));
+    if (size)
+    {
+      media_size = ippNew();
+      ippAddInteger(media_size, IPP_TAG_ZERO, IPP_TAG_INTEGER,
+                    "x-dimension", size->width);
+      ippAddInteger(media_size, IPP_TAG_ZERO, IPP_TAG_INTEGER,
+                    "y-dimension", size->length);
+
+      ippAddCollection(media_col, IPP_TAG_ZERO, "media-size", media_size);
+    }
 
     for (i = 0; i < media_col_sup->num_values; i ++)
     {
-      if (!strcmp(media_col_sup->values[i].string.text, "media-left-margin"))
+      if (size && !strcmp(media_col_sup->values[i].string.text, "media-left-margin"))
        ippAddInteger(media_col, IPP_TAG_ZERO, IPP_TAG_INTEGER, "media-left-margin", size->left);
-      else if (!strcmp(media_col_sup->values[i].string.text, "media-bottom-margin"))
+      else if (size && !strcmp(media_col_sup->values[i].string.text, "media-bottom-margin"))
        ippAddInteger(media_col, IPP_TAG_ZERO, IPP_TAG_INTEGER, "media-bottom-margin", size->bottom);
-      else if (!strcmp(media_col_sup->values[i].string.text, "media-right-margin"))
+      else if (size && !strcmp(media_col_sup->values[i].string.text, "media-right-margin"))
        ippAddInteger(media_col, IPP_TAG_ZERO, IPP_TAG_INTEGER, "media-right-margin", size->right);
-      else if (!strcmp(media_col_sup->values[i].string.text, "media-top-margin"))
+      else if (size && !strcmp(media_col_sup->values[i].string.text, "media-top-margin"))
        ippAddInteger(media_col, IPP_TAG_ZERO, IPP_TAG_INTEGER, "media-top-margin", size->top);
-      else if (!strcmp(media_col_sup->values[i].string.text, "media-source") && media_source)
+      else if (media_source && !strcmp(media_col_sup->values[i].string.text, "media-source"))
        ippAddString(media_col, IPP_TAG_ZERO, IPP_TAG_KEYWORD, "media-source", NULL, media_source);
-      else if (!strcmp(media_col_sup->values[i].string.text, "media-type") && media_type)
+      else if (media_type && !strcmp(media_col_sup->values[i].string.text, "media-type"))
        ippAddString(media_col, IPP_TAG_ZERO, IPP_TAG_KEYWORD, "media-type", NULL, media_type);
     }
 
@@ -503,53 +503,6 @@ _ppdCacheCreateWithFile(
       _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Bad PPD cache file."), 1);
       goto create_error;
     }
-    else if (!_cups_strcasecmp(line, "3D"))
-    {
-      pc->cups_3d = _cupsStrAlloc(value);
-    }
-    else if (!_cups_strcasecmp(line, "LayerOrder"))
-    {
-      pc->cups_layer_order = _cupsStrAlloc(value);
-    }
-    else if (!_cups_strcasecmp(line, "Accuracy"))
-    {
-      sscanf(value, "%d%d%d", pc->cups_accuracy + 0, pc->cups_accuracy + 1, pc->cups_accuracy + 2);
-    }
-    else if (!_cups_strcasecmp(line, "Volume"))
-    {
-      sscanf(value, "%d%d%d", pc->cups_volume + 0, pc->cups_volume + 1, pc->cups_volume + 2);
-    }
-    else if (!_cups_strcasecmp(line, "Material"))
-    {
-     /*
-      * Material key "name" name=value ... name=value
-      */
-
-      if ((valueptr = strchr(value, ' ')) != NULL)
-      {
-       _pwg_material_t *material = (_pwg_material_t *)calloc(1, sizeof(_pwg_material_t));
-
-        *valueptr++ = '\0';
-
-        material->key = _cupsStrAlloc(value);
-
-        if (*valueptr == '\"')
-       {
-         value = valueptr + 1;
-         if ((valueptr = strchr(value, '\"')) != NULL)
-         {
-           *valueptr++ = '\0';
-           material->name = _cupsStrAlloc(value);
-           material->num_props = cupsParseOptions(valueptr, 0, &material->props);
-         }
-       }
-
-       if (!pc->materials)
-         pc->materials = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)pwg_free_material);
-
-        cupsArrayAdd(pc->materials, material);
-      }
-    }
     else if (!_cups_strcasecmp(line, "Filter"))
     {
       if (!pc->filters)
@@ -1714,6 +1667,10 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd)  /* I - PPD file */
 
   if ((ppd_attr = ppdFindAttr(ppd, "cupsIPPFinishings", NULL)) != NULL)
   {
+   /*
+    * Have proper vendor mapping of IPP finishings values to PPD options...
+    */
+
     pc->finishings = cupsArrayNew3((cups_array_func_t)pwg_compare_finishings,
                                    NULL, NULL, 0, NULL,
                                    (cups_afree_func_t)pwg_free_finishings);
@@ -1733,6 +1690,114 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */
     while ((ppd_attr = ppdFindNextAttr(ppd, "cupsIPPFinishings",
                                        NULL)) != NULL);
   }
+  else
+  {
+   /*
+    * No IPP mapping data, try to map common/standard PPD keywords...
+    */
+
+    ppd_option_t       *ppd_option;    /* PPD option */
+
+    pc->finishings = cupsArrayNew3((cups_array_func_t)pwg_compare_finishings, NULL, NULL, 0, NULL, (cups_afree_func_t)pwg_free_finishings);
+
+    if ((ppd_option = ppdFindOption(ppd, "StapleLocation")) != NULL)
+    {
+     /*
+      * Add staple finishings...
+      */
+
+      if (ppdFindChoice(ppd_option, "SinglePortrait"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_STAPLE_TOP_LEFT, "StapleLocation", "SinglePortrait");
+      if (ppdFindChoice(ppd_option, "UpperLeft")) /* Ricoh extension */
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_STAPLE_TOP_LEFT, "StapleLocation", "UpperLeft");
+      if (ppdFindChoice(ppd_option, "UpperRight")) /* Ricoh extension */
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_STAPLE_TOP_RIGHT, "StapleLocation", "UpperRight");
+      if (ppdFindChoice(ppd_option, "SingleLandscape"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_STAPLE_BOTTOM_LEFT, "StapleLocation", "SingleLandscape");
+      if (ppdFindChoice(ppd_option, "DualLandscape"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_STAPLE_DUAL_LEFT, "StapleLocation", "DualLandscape");
+    }
+
+    if ((ppd_option = ppdFindOption(ppd, "RIPunch")) != NULL)
+    {
+     /*
+      * Add (Ricoh) punch finishings...
+      */
+
+      if (ppdFindChoice(ppd_option, "Left2"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_DUAL_LEFT, "RIPunch", "Left2");
+      if (ppdFindChoice(ppd_option, "Left3"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_TRIPLE_LEFT, "RIPunch", "Left3");
+      if (ppdFindChoice(ppd_option, "Left4"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_QUAD_LEFT, "RIPunch", "Left4");
+      if (ppdFindChoice(ppd_option, "Right2"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_DUAL_RIGHT, "RIPunch", "Right2");
+      if (ppdFindChoice(ppd_option, "Right3"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT, "RIPunch", "Right3");
+      if (ppdFindChoice(ppd_option, "Right4"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_QUAD_RIGHT, "RIPunch", "Right4");
+      if (ppdFindChoice(ppd_option, "Upper2"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_DUAL_TOP, "RIPunch", "Upper2");
+      if (ppdFindChoice(ppd_option, "Upper3"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_TRIPLE_TOP, "RIPunch", "Upper3");
+      if (ppdFindChoice(ppd_option, "Upper4"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_PUNCH_QUAD_TOP, "RIPunch", "Upper4");
+    }
+
+    if ((ppd_option = ppdFindOption(ppd, "BindEdge")) != NULL)
+    {
+     /*
+      * Add bind finishings...
+      */
+
+      if (ppdFindChoice(ppd_option, "Left"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_BIND_LEFT, "BindEdge", "Left");
+      if (ppdFindChoice(ppd_option, "Right"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_BIND_RIGHT, "BindEdge", "Right");
+      if (ppdFindChoice(ppd_option, "Top"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_BIND_TOP, "BindEdge", "Top");
+      if (ppdFindChoice(ppd_option, "Bottom"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_BIND_BOTTOM, "BindEdge", "Bottom");
+    }
+
+    if ((ppd_option = ppdFindOption(ppd, "FoldType")) != NULL)
+    {
+     /*
+      * Add (Adobe) fold finishings...
+      */
+
+      if (ppdFindChoice(ppd_option, "ZFold"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_Z, "FoldType", "ZFold");
+      if (ppdFindChoice(ppd_option, "Saddle"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_HALF, "FoldType", "Saddle");
+      if (ppdFindChoice(ppd_option, "DoubleGate"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_DOUBLE_GATE, "FoldType", "DoubleGate");
+      if (ppdFindChoice(ppd_option, "LeftGate"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_LEFT_GATE, "FoldType", "LeftGate");
+      if (ppdFindChoice(ppd_option, "RightGate"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_RIGHT_GATE, "FoldType", "RightGate");
+      if (ppdFindChoice(ppd_option, "Letter"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_LETTER, "FoldType", "Letter");
+      if (ppdFindChoice(ppd_option, "XFold"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_POSTER, "FoldType", "XFold");
+    }
+
+    if ((ppd_option = ppdFindOption(ppd, "RIFoldType")) != NULL)
+    {
+     /*
+      * Add (Ricoh) fold finishings...
+      */
+
+      if (ppdFindChoice(ppd_option, "OutsideTwoFold"))
+        pwg_add_finishing(pc->finishings, IPP_FINISHINGS_FOLD_LETTER, "RIFoldType", "OutsideTwoFold");
+    }
+
+    if (cupsArrayCount(pc->finishings) == 0)
+    {
+      cupsArrayDelete(pc->finishings);
+      pc->finishings = NULL;
+    }
+  }
 
  /*
   * Max copies...
@@ -1782,42 +1847,6 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd)  /* I - PPD file */
     cupsArrayAdd(pc->support_files, ppd_attr->value);
 
  /*
-  * 3D stuff...
-  */
-
-  if ((ppd_attr = ppdFindAttr(ppd, "cups3D", NULL)) != NULL)
-    pc->cups_3d = _cupsStrAlloc(ppd_attr->value);
-
-  if ((ppd_attr = ppdFindAttr(ppd, "cupsLayerOrder", NULL)) != NULL)
-    pc->cups_layer_order = _cupsStrAlloc(ppd_attr->value);
-
-  if ((ppd_attr = ppdFindAttr(ppd, "cupsAccuracy", NULL)) != NULL)
-    sscanf(ppd_attr->value, "%d%d%d", pc->cups_accuracy + 0, pc->cups_accuracy + 1, pc->cups_accuracy + 2);
-
-  if ((ppd_attr = ppdFindAttr(ppd, "cupsVolume", NULL)) != NULL)
-    sscanf(ppd_attr->value, "%d%d%d", pc->cups_volume + 0, pc->cups_volume + 1, pc->cups_volume + 2);
-
-  for (ppd_attr = ppdFindAttr(ppd, "cupsMaterial", NULL);
-       ppd_attr;
-       ppd_attr = ppdFindNextAttr(ppd, "cupsMaterial", NULL))
-  {
-   /*
-    * *cupsMaterial key/name: "name=value ... name=value"
-    */
-
-    _pwg_material_t    *material = (_pwg_material_t *)calloc(1, sizeof(_pwg_material_t));
-
-    material->key = _cupsStrAlloc(ppd_attr->name);
-    material->name = _cupsStrAlloc(ppd_attr->text);
-    material->num_props = cupsParseOptions(ppd_attr->value, 0, &material->props);
-
-    if (!pc->materials)
-      pc->materials = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)pwg_free_material);
-
-    cupsArrayAdd(pc->materials, material);
-  }
-
- /*
   * Return the cache data...
   */
 
@@ -1924,11 +1953,6 @@ _ppdCacheDestroy(_ppd_cache_t *pc)       /* I - PPD cache and mapping data */
 
   cupsArrayDelete(pc->support_files);
 
-  _cupsStrFree(pc->cups_3d);
-  _cupsStrFree(pc->cups_layer_order);
-
-  cupsArrayDelete(pc->materials);
-
   free(pc);
 }
 
@@ -2686,7 +2710,6 @@ _ppdCacheWriteFile(
   cups_option_t                *option;        /* Current option */
   const char           *value;         /* Filter/pre-filter value */
   char                 newfile[1024];  /* New filename */
-  _pwg_material_t      *m;             /* Material */
 
 
  /*
@@ -2868,32 +2891,6 @@ _ppdCacheWriteFile(
     cupsFilePutConf(fp, "SupportFile", value);
 
  /*
-  * 3D stuff...
-  */
-
-  if (pc->cups_3d)
-    cupsFilePutConf(fp, "3D", pc->cups_3d);
-
-  if (pc->cups_layer_order)
-    cupsFilePutConf(fp, "LayerOrder", pc->cups_layer_order);
-
-  if (pc->cups_accuracy[0] || pc->cups_accuracy[0] || pc->cups_accuracy[2])
-    cupsFilePrintf(fp, "Accuracy %d %d %d\n", pc->cups_accuracy[0], pc->cups_accuracy[1], pc->cups_accuracy[2]);
-
-  if (pc->cups_volume[0] || pc->cups_volume[0] || pc->cups_volume[2])
-    cupsFilePrintf(fp, "Volume %d %d %d\n", pc->cups_volume[0], pc->cups_volume[1], pc->cups_volume[2]);
-
-  for (m = (_pwg_material_t *)cupsArrayFirst(pc->materials);
-       m;
-       m = (_pwg_material_t *)cupsArrayNext(pc->materials))
-  {
-    cupsFilePrintf(fp, "Material %s \"%s\"", m->key, m->name);
-    for (i = 0; i < m->num_props; i ++)
-      cupsFilePrintf(fp, " %s=%s", m->props[i].name, m->props[i].value);
-    cupsFilePuts(fp, "\n");
-  }
-
- /*
   * IPP attributes, if any...
   */
 
@@ -2934,6 +2931,7 @@ _ppdCreateFromIPP(char   *buffer, /* I - Filename buffer */
   cups_array_t         *sizes;         /* Media sizes we've added */
   ipp_attribute_t      *attr,          /* xxx-supported */
                        *defattr,       /* xxx-default */
+                        *quality,      /* print-quality-supported */
                        *x_dim, *y_dim; /* Media dimensions */
   ipp_t                        *media_size;    /* Media size collection */
   char                 make[256],      /* Make and model */
@@ -3032,15 +3030,27 @@ _ppdCreateFromIPP(char   *buffer,       /* I - Filename buffer */
   if (buffer)
     *buffer = '\0';
 
-  if (!buffer || bufsize < 1 || !response)
+  if (!buffer || bufsize < 1)
+  {
+    _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0);
+    return (NULL);
+  }
+
+  if (!response)
+  {
+    _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("No IPP attributes."), 1);
     return (NULL);
+  }
 
  /*
   * Open a temporary file for the PPD...
   */
 
   if ((fp = cupsTempFile2(buffer, (int)bufsize)) == NULL)
+  {
+    _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(errno), 0);
     return (NULL);
+  }
 
  /*
   * Standard stuff for PPD file...
@@ -3410,6 +3420,19 @@ _ppdCreateFromIPP(char   *buffer,        /* I - Filename buffer */
       { "cardboard", _("Cardboard") },
       { "cardstock", _("Cardstock") },
       { "cd", _("CD") },
+      { "com.hp.advanced-photo", _("Advanced Photo Paper") }, /* HP */
+      { "com.hp.brochure-glossy", _("Glossy Brochure Paper") }, /* HP */
+      { "com.hp.brochure-matte", _("Matte Brochure Paper") }, /* HP */
+      { "com.hp.cover-matte", _("Matte Cover Paper") }, /* HP */
+      { "com.hp.ecosmart-lite", _("Office Recycled Paper") }, /* HP */
+      { "com.hp.everyday-glossy", _("Everyday Glossy Photo Paper") }, /* HP */
+      { "com.hp.everyday-matte", _("Everyday Matte Paper") }, /* HP */
+      { "com.hp.extra-heavy", _("Extra Heavyweight Paper") }, /* HP */
+      { "com.hp.intermediate", _("Multipurpose Paper") }, /* HP */
+      { "com.hp.mid-weight", _("Mid-Weight Paper") }, /* HP */
+      { "com.hp.premium-inkjet", _("Premium Inkjet Paper") }, /* HP */
+      { "com.hp.premium-photo", _("Premium Photo Glossy Paper") }, /* HP */
+      { "com.hp.premium-presentation-matte", _("Premium Presentation Matte Paper") }, /* HP */
       { "continuous", _("Continuous") },
       { "continuous-long", _("Continuous Long") },
       { "continuous-short", _("Continuous Short") },
@@ -3457,6 +3480,10 @@ _ppdCreateFromIPP(char   *buffer,        /* I - Filename buffer */
       { "gravure-cylinder", _("Gravure Cylinder") },
       { "image-setter-paper", _("Image Setter Paper") },
       { "imaging-cylinder", _("Imaging Cylinder") },
+      { "jp.co.canon_photo-paper-plus-glossy-ii", _("Photo Paper Plus Glossy II") }, /* Canon */
+      { "jp.co.canon_photo-paper-pro-platinum", _("Photo Paper Pro Platinum") }, /* Canon */
+      { "jp.co.canon-photo-paper-plus-glossy-ii", _("Photo Paper Plus Glossy II") }, /* Canon */
+      { "jp.co.canon-photo-paper-pro-platinum", _("Photo Paper Pro Platinum") }, /* Canon */
       { "labels", _("Labels") },
       { "labels-colored", _("Colored Labels") },
       { "labels-glossy", _("Glossy Labels") },
@@ -3480,8 +3507,9 @@ _ppdCreateFromIPP(char   *buffer, /* I - Filename buffer */
       { "multi-part-form", _("Multi Part Form") },
       { "other", _("Other") },
       { "paper", _("Paper") },
+      { "photo", _("Photo Paper") }, /* HP mis-spelling */
       { "photographic", _("Photo Paper") },
-      { "photographic-archival", _("Photographic Archival") },
+      { "photographic-archival", _("Archival Photo Paper") },
       { "photographic-film", _("Photo Film") },
       { "photographic-glossy", _("Glossy Photo Paper") },
       { "photographic-high-gloss", _("High Gloss Photo Paper") },
@@ -3508,14 +3536,14 @@ _ppdCreateFromIPP(char   *buffer,       /* I - Filename buffer */
       { "single-face", _("Single Face") },
       { "single-wall", _("Single Wall Cardboard") },
       { "sleeve", _("Sleeve") },
-      { "stationery", _("Stationery") },
-      { "stationery-archival", _("Stationery Archival") },
+      { "stationery", _("Plain Paper") },
+      { "stationery-archival", _("Archival Paper") },
       { "stationery-coated", _("Coated Paper") },
-      { "stationery-cotton", _("Stationery Cotton") },
+      { "stationery-cotton", _("Cotton Paper") },
       { "stationery-fine", _("Vellum Paper") },
       { "stationery-heavyweight", _("Heavyweight Paper") },
-      { "stationery-heavyweight-coated", _("Stationery Heavyweight Coated") },
-      { "stationery-inkjet", _("Stationery Inkjet Paper") },
+      { "stationery-heavyweight-coated", _("Heavyweight Coated Paper") },
+      { "stationery-inkjet", _("Inkjet Paper") },
       { "stationery-letterhead", _("Letterhead") },
       { "stationery-lightweight", _("Lightweight Paper") },
       { "stationery-preprinted", _("Preprinted Paper") },
@@ -3531,14 +3559,20 @@ _ppdCreateFromIPP(char   *buffer,       /* I - Filename buffer */
     cupsFilePrintf(fp, "*OpenUI *MediaType: PickOne\n"
                        "*OrderDependency: 10 AnySetup *MediaType\n"
                        "*DefaultMediaType: %s\n", ppdname);
-    for (i = 0; i < (int)(sizeof(media_types) / sizeof(media_types[0])); i ++)
+    for (i = 0; i < count; i ++)
     {
-      if (!ippContainsString(attr, media_types[i][0]))
-        continue;
+      const char *keyword = ippGetString(attr, i, NULL);
 
-      pwg_ppdize_name(media_types[i][0], ppdname, sizeof(ppdname));
+      pwg_ppdize_name(keyword, ppdname, sizeof(ppdname));
+
+      for (j = 0; j < (int)(sizeof(media_types) / sizeof(media_types[0])); j ++)
+        if (!strcmp(keyword, media_types[j][0]))
+          break;
 
-      cupsFilePrintf(fp, "*MediaType %s/%s: \"<</MediaType(%s)>>setpagedevice\"\n", ppdname, _cupsLangString(lang, media_types[i][1]), ppdname);
+      if (j < (int)(sizeof(media_types) / sizeof(media_types[0])))
+        cupsFilePrintf(fp, "*MediaType %s/%s: \"<</MediaType(%s)>>setpagedevice\"\n", ppdname, _cupsLangString(lang, media_types[j][1]), ppdname);
+      else
+        cupsFilePrintf(fp, "*MediaType %s/%s: \"<</MediaType(%s)>>setpagedevice\"\n", ppdname, keyword, ppdname);
     }
     cupsFilePuts(fp, "*CloseUI: *MediaType\n");
   }
@@ -3747,94 +3781,187 @@ _ppdCreateFromIPP(char   *buffer,      /* I - Filename buffer */
 
  /*
   * Finishing options...
+  *
+  * Eventually need to re-add support for finishings-col-database, however
+  * it is difficult to map arbitrary finishing-template values to PPD options
+  * and have the right constraints apply (e.g. stapling vs. folding vs.
+  * punching, etc.)
   */
 
-  if ((attr = ippFindAttribute(response, "finishings-col-database", IPP_TAG_BEGIN_COLLECTION)) != NULL)
+  if ((attr = ippFindAttribute(response, "finishings-supported", IPP_TAG_ENUM)) != NULL)
   {
-    ipp_t              *col;           /* Collection value */
-    ipp_attribute_t    *template;      /* "finishing-template" member */
     const char         *name;          /* String name */
-    int                        value;          /* Enum value, if any */
+    int                        value;          /* Enum value */
     cups_array_t       *names;         /* Names we've added */
 
     count = ippGetCount(attr);
     names = cupsArrayNew3((cups_array_func_t)strcmp, NULL, NULL, 0, (cups_acopy_func_t)strdup, (cups_afree_func_t)free);
 
-    cupsFilePrintf(fp, "*OpenUI *cupsFinishingTemplate/%s: PickMany\n"
-                      "*OrderDependency: 10 AnySetup *cupsFinishingTemplate\n"
-                      "*DefaultcupsFinishingTemplate: none\n"
-                      "*cupsFinishingTemplate none/%s: \"\"\n"
-                      "*cupsIPPFinishings 3/none: \"*cupsFinishingTemplate none\"\n", _cupsLangString(lang, _("Finishing")), _cupsLangString(lang, _("No Finishing")));
+   /*
+    * Staple/Bind/Stitch
+    */
 
     for (i = 0; i < count; i ++)
     {
-      col      = ippGetCollection(attr, i);
-      template = ippFindAttribute(col, "finishing-template", IPP_TAG_ZERO);
+      value = ippGetInteger(attr, i);
+      name  = ippEnumString("finishings", value);
 
-      if ((name = ippGetString(template, 0, NULL)) == NULL || !strcmp(name, "none"))
-        continue;
-
-      if (cupsArrayFind(names, (char *)name))
-        continue;                      /* Already did this finishing template */
+      if (!strncmp(name, "staple-", 7) || !strncmp(name, "bind-", 5) || !strncmp(name, "edge-stitch-", 12) || !strcmp(name, "saddle-stitch"))
+        break;
+    }
 
-      cupsArrayAdd(names, (char *)name);
+    if (i < count)
+    {
+      cupsFilePrintf(fp, "*OpenUI *StapleLocation/%s: PickOne\n", _cupsLangString(lang, _("Staple")));
+      cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *StapleLocation\n");
+      cupsFilePuts(fp, "*DefaultStapleLocation: None\n");
+      cupsFilePrintf(fp, "*StapleLocation None/%s: \"\"\n", _cupsLangString(lang, _("None")));
 
-      for (j = 0; j < (int)(sizeof(finishings) / sizeof(finishings[0])); j ++)
+      for (; i < count; i ++)
       {
-        if (!strcmp(finishings[j][0], name))
-       {
-          cupsFilePrintf(fp, "*cupsFinishingTemplate %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1]));
+        value = ippGetInteger(attr, i);
+        name  = ippEnumString("finishings", value);
+
+        if (strncmp(name, "staple-", 7) && strncmp(name, "bind-", 5) && strncmp(name, "edge-stitch-", 12) && strcmp(name, "saddle-stitch"))
+          continue;
 
-         value = ippEnumValue("finishings", name);
+        if (cupsArrayFind(names, (char *)name))
+          continue;                    /* Already did this finishing template */
 
-         if (value)
-           cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*cupsFinishingTemplate %s\"\n", value, name, name);
-          break;
-       }
+        cupsArrayAdd(names, (char *)name);
+
+        for (j = 0; j < (int)(sizeof(finishings) / sizeof(finishings[0])); j ++)
+        {
+          if (!strcmp(finishings[j][0], name))
+          {
+            cupsFilePrintf(fp, "*StapleLocation %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1]));
+            cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*StapleLocation %s\"\n", value, name, name);
+            break;
+          }
+        }
       }
+
+      cupsFilePuts(fp, "*CloseUI: *StapleLocation\n");
     }
 
-    cupsArrayDelete(names);
+   /*
+    * Fold
+    */
 
-    cupsFilePuts(fp, "*CloseUI: *cupsFinishingTemplate\n");
-  }
-  else if ((attr = ippFindAttribute(response, "finishings-supported", IPP_TAG_ENUM)) != NULL && (count = ippGetCount(attr)) > 1 )
-  {
-    const char         *name;          /* String name */
-    int                        value;          /* Enum value, if any */
+    for (i = 0; i < count; i ++)
+    {
+      value = ippGetInteger(attr, i);
+      name  = ippEnumString("finishings", value);
 
-    count = ippGetCount(attr);
+      if (!strncmp(name, "fold-", 5))
+        break;
+    }
+
+    if (i < count)
+    {
+      cupsFilePrintf(fp, "*OpenUI *FoldType/%s: PickOne\n", _cupsLangString(lang, _("Fold")));
+      cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *FoldType\n");
+      cupsFilePuts(fp, "*DefaultFoldType: None\n");
+      cupsFilePrintf(fp, "*FoldType None/%s: \"\"\n", _cupsLangString(lang, _("None")));
+
+      for (; i < count; i ++)
+      {
+        value = ippGetInteger(attr, i);
+        name  = ippEnumString("finishings", value);
+
+        if (strncmp(name, "fold-", 5))
+          continue;
+
+        if (cupsArrayFind(names, (char *)name))
+          continue;                    /* Already did this finishing template */
+
+        cupsArrayAdd(names, (char *)name);
+
+        for (j = 0; j < (int)(sizeof(finishings) / sizeof(finishings[0])); j ++)
+        {
+          if (!strcmp(finishings[j][0], name))
+          {
+            cupsFilePrintf(fp, "*FoldType %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1]));
+            cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*FoldType %s\"\n", value, name, name);
+            break;
+          }
+        }
+      }
 
-    cupsFilePrintf(fp, "*OpenUI *cupsFinishingTemplate/%s: PickMany\n"
-                      "*OrderDependency: 10 AnySetup *cupsFinishingTemplate\n"
-                      "*DefaultcupsFinishingTemplate: none\n"
-                      "*cupsFinishingTemplate none/%s: \"\"\n"
-                      "*cupsIPPFinishings 3/none: \"*cupsFinishingTemplate none\"\n", _cupsLangString(lang, _("Finishing")), _cupsLangString(lang, _("No Finishing")));
+      cupsFilePuts(fp, "*CloseUI: *FoldType\n");
+    }
+
+   /*
+    * Punch
+    */
 
     for (i = 0; i < count; i ++)
     {
-      if ((value = ippGetInteger(attr, i)) == 3)
-        continue;
+      value = ippGetInteger(attr, i);
+      name  = ippEnumString("finishings", value);
 
-      name = ippEnumString("finishings", value);
-      for (j = 0; j < (int)(sizeof(finishings) / sizeof(finishings[0])); j ++)
+      if (!strncmp(name, "punch-", 6))
+        break;
+    }
+
+    if (i < count)
+    {
+      cupsFilePrintf(fp, "*OpenUI *PunchMedia/%s: PickOne\n", _cupsLangString(lang, _("Punch")));
+      cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *PunchMedia\n");
+      cupsFilePuts(fp, "*DefaultPunchMedia: None\n");
+      cupsFilePrintf(fp, "*PunchMedia None/%s: \"\"\n", _cupsLangString(lang, _("None")));
+
+      for (i = 0; i < count; i ++)
       {
-        if (!strcmp(finishings[j][0], name))
-       {
-          cupsFilePrintf(fp, "*cupsFinishingTemplate %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1]));
-         cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*cupsFinishingTemplate %s\"\n", value, name, name);
-          break;
-       }
+        value = ippGetInteger(attr, i);
+        name  = ippEnumString("finishings", value);
+
+        if (strncmp(name, "punch-", 6))
+          continue;
+
+        if (cupsArrayFind(names, (char *)name))
+          continue;                    /* Already did this finishing template */
+
+        cupsArrayAdd(names, (char *)name);
+
+        for (j = 0; j < (int)(sizeof(finishings) / sizeof(finishings[0])); j ++)
+        {
+          if (!strcmp(finishings[j][0], name))
+          {
+            cupsFilePrintf(fp, "*PunchMedia %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1]));
+            cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*PunchMedia %s\"\n", value, name, name);
+            break;
+          }
+        }
       }
+
+      cupsFilePuts(fp, "*CloseUI: *PunchMedia\n");
+    }
+
+   /*
+    * Booklet
+    */
+
+    if (ippContainsInteger(attr, IPP_FINISHINGS_BOOKLET_MAKER))
+    {
+      cupsFilePrintf(fp, "*OpenUI *Booklet/%s: Boolean\n", _cupsLangString(lang, _("Booklet")));
+      cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *Booklet\n");
+      cupsFilePuts(fp, "*DefaultBooklet: False\n");
+      cupsFilePuts(fp, "*Booklet False: \"\"\n");
+      cupsFilePuts(fp, "*Booklet True: \"\"\n");
+      cupsFilePrintf(fp, "*cupsIPPFinishings %d/booklet-maker: \"*Booklet True\"\n", IPP_FINISHINGS_BOOKLET_MAKER);
+      cupsFilePuts(fp, "*CloseUI: *Booklet\n");
     }
 
-    cupsFilePuts(fp, "*CloseUI: *cupsFinishingTemplate\n");
+    cupsArrayDelete(names);
   }
 
  /*
   * cupsPrintQuality and DefaultResolution...
   */
 
+  quality = ippFindAttribute(response, "print-quality-supported", IPP_TAG_ENUM);
+
   if ((attr = ippFindAttribute(response, "pwg-raster-document-resolution-supported", IPP_TAG_RESOLUTION)) != NULL)
   {
     count = ippGetCount(attr);
@@ -3845,16 +3972,19 @@ _ppdCreateFromIPP(char   *buffer,       /* I - Filename buffer */
     cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n"
                       "*OrderDependency: 10 AnySetup *cupsPrintQuality\n"
                       "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality")));
-    if (count > 2)
+    if (count > 2 || ippContainsInteger(quality, IPP_QUALITY_DRAFT))
     {
       pwg_ppdize_resolution(attr, 0, &xres, &yres, NULL, 0);
       cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), xres, yres);
     }
     pwg_ppdize_resolution(attr, count / 2, &xres, &yres, NULL, 0);
     cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), xres, yres);
-    if (count > 1)
+    if (count > 1 || ippContainsInteger(quality, IPP_QUALITY_HIGH))
     {
-      pwg_ppdize_resolution(attr, count - 1, &xres, &yres, NULL, 0);
+      if (count > 1)
+        pwg_ppdize_resolution(attr, count - 1, &xres, &yres, NULL, 0);
+      else
+        pwg_ppdize_resolution(attr, 0, &xres, &yres, NULL, 0);
       cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("High")), xres, yres);
     }
 
@@ -3901,21 +4031,40 @@ _ppdCreateFromIPP(char   *buffer,       /* I - Filename buffer */
                         "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality")));
       if ((lowdpi & 1) == 0)
        cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), lowdpi, lowdpi / 2);
+      else if (ippContainsInteger(quality, IPP_QUALITY_DRAFT))
+       cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), lowdpi, lowdpi);
       cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), lowdpi, lowdpi);
-      if (hidpi > lowdpi)
+      if (hidpi > lowdpi || ippContainsInteger(quality, IPP_QUALITY_HIGH))
        cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("High")), hidpi, hidpi);
       cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n");
     }
   }
   else if (is_apple || is_pwg)
     goto bad_ppd;
-  else if ((attr = ippFindAttribute(response, "printer-resolution-default", IPP_TAG_RESOLUTION)) != NULL)
+  else
   {
-    pwg_ppdize_resolution(attr, 0, &xres, &yres, ppdname, sizeof(ppdname));
+    if ((attr = ippFindAttribute(response, "printer-resolution-default", IPP_TAG_RESOLUTION)) != NULL)
+    {
+      pwg_ppdize_resolution(attr, 0, &xres, &yres, ppdname, sizeof(ppdname));
+    }
+    else
+    {
+      xres = yres = 300;
+      strlcpy(ppdname, "300dpi", sizeof(ppdname));
+    }
+
     cupsFilePrintf(fp, "*DefaultResolution: %s\n", ppdname);
+
+    cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n"
+                       "*OrderDependency: 10 AnySetup *cupsPrintQuality\n"
+                       "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality")));
+    if (ippContainsInteger(quality, IPP_QUALITY_DRAFT))
+      cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), xres, yres);
+    cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), xres, yres);
+    if (ippContainsInteger(quality, IPP_QUALITY_HIGH))
+      cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("High")), xres, yres);
+    cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n");
   }
-  else
-    cupsFilePuts(fp, "*DefaultResolution: 300dpi\n");
 
  /*
   * Close up and return...
@@ -3935,6 +4084,8 @@ _ppdCreateFromIPP(char   *buffer, /* I - Filename buffer */
   unlink(buffer);
   *buffer = '\0';
 
+  _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Printer does not support required IPP attributes or document formats."), 1);
+
   return (NULL);
 }
 
@@ -4095,10 +4246,34 @@ _pwgPageSizeForMedia(
 
 
 /*
+ * 'pwg_add_finishing()' - Add a finishings value.
+ */
+
+static void
+pwg_add_finishing(
+    cups_array_t     *finishings,      /* I - Finishings array */
+    ipp_finishings_t template,         /* I - Finishing template */
+    const char       *name,            /* I - PPD option */
+    const char       *value)           /* I - PPD choice */
+{
+  _pwg_finishings_t    *f;             /* New finishings value */
+
+
+  if ((f = (_pwg_finishings_t *)calloc(1, sizeof(_pwg_finishings_t))) != NULL)
+  {
+    f->value       = template;
+    f->num_options = cupsAddOption(name, value, 0, &f->options);
+
+    cupsArrayAdd(finishings, f);
+  }
+}
+
+
+/*
  * 'pwg_compare_finishings()' - Compare two finishings values.
  */
 
-static int                             /* O- Result of comparison */
+static int                             /* O - Result of comparison */
 pwg_compare_finishings(
     _pwg_finishings_t *a,              /* I - First finishings value */
     _pwg_finishings_t *b)              /* I - Second finishings value */
@@ -4121,22 +4296,6 @@ pwg_free_finishings(
 
 
 /*
- * 'pwg_free_material()' - Free a material value.
- */
-
-static void
-pwg_free_material(_pwg_material_t *m)  /* I - Material value */
-{
-  _cupsStrFree(m->key);
-  _cupsStrFree(m->name);
-
-  cupsFreeOptions(m->num_props, m->props);
-
-  free(m);
-}
-
-
-/*
  * 'pwg_ppdize_name()' - Convert an IPP keyword to a PPD keyword.
  */
 
index e74147c..ed75bf8 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PPD localization routines for CUPS.
  *
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -665,7 +665,7 @@ _ppdLocalizedAttr(ppd_file_t *ppd,  /* I - PPD file */
    /*
     * <rdar://problem/22130168>
     *
-    * Hong Kong locale needs special handling...  Sigh...
+    * Multiple locales need special handling...  Sigh...
     */
 
     if (!strcmp(ll_CC, "zh_HK"))
index 6020190..b199bbd 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Private PPD definitions for CUPS.
  *
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -47,7 +47,7 @@ extern "C" {
  * Constants...
  */
 
-#  define _PPD_CACHE_VERSION   7       /* Version number in cache file */
+#  define _PPD_CACHE_VERSION   8       /* Version number in cache file */
 
 
 /*
@@ -100,7 +100,7 @@ typedef enum _pwg_print_color_mode_e        /**** PWG print-color-mode indices ****/
 {
   _PWG_PRINT_COLOR_MODE_MONOCHROME = 0,        /* print-color-mode=monochrome */
   _PWG_PRINT_COLOR_MODE_COLOR,         /* print-color-mode=color */
-  /* Other proposed values are not supported by CUPS yet. */
+  /* Other values are not supported by CUPS yet. */
   _PWG_PRINT_COLOR_MODE_MAX
 } _pwg_print_color_mode_t;
 
@@ -119,14 +119,6 @@ typedef struct _pwg_finishings_s   /**** PWG finishings mapping data ****/
   cups_option_t                *options;       /* Options to apply */
 } _pwg_finishings_t;
 
-typedef struct _pwg_material_s         /**** PWG material mapping data ****/
-{
-  char         *key,                   /* material-key value */
-               *name;                  /* material-name value */
-  int          num_props;              /* Number of properties */
-  cups_option_t        *props;                 /* Material properties */
-} _pwg_material_t;
-
 struct _ppd_cache_s                    /**** PPD cache and PWG conversion data ****/
 {
   int          num_bins;               /* Number of output bins */
@@ -166,11 +158,6 @@ struct _ppd_cache_s                        /**** PPD cache and PWG conversion data ****/
   cups_array_t *mandatory;             /* cupsMandatory value */
   char         *charge_info_uri;       /* cupsChargeInfoURI value */
   cups_array_t *support_files;         /* Support files - ICC profiles, etc. */
-  char         *cups_3d,               /* cups3D value */
-               *cups_layer_order;      /* cupsLayerOrder value */
-  int          cups_accuracy[3];       /* cupsAccuracy value - x, y, and z in nanometers */
-  int          cups_volume[3];         /* cupsVolume value - x, y, and z in millimeters */
-  cups_array_t *materials;             /* cupsMaterial values */
 };
 
 
index 63d5dd2..5bd839d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PPD file routines for CUPS.
  *
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -579,12 +579,28 @@ _ppdOpen(
 
    /*
     * <rdar://problem/22130168>
+    * <rdar://problem/27245567>
     *
     * Need to use a different base language for some locales...
     */
 
     if (!strcmp(lang->language, "zh_HK"))
-      strlcpy(ll, "zh_TW.", sizeof(ll));
+    {                                  /* Traditional Chinese + variants */
+      strlcpy(ll_CC, "zh_TW.", sizeof(ll_CC));
+      strlcpy(ll, "zh_", sizeof(ll));
+    }
+    else if (!strncmp(lang->language, "zh", 2))
+      strlcpy(ll, "zh_", sizeof(ll));  /* Any Chinese variant */
+    else if (!strncmp(lang->language, "jp", 2))
+    {                                  /* Any Japanese variant */
+      strlcpy(ll_CC, "ja", sizeof(ll_CC));
+      strlcpy(ll, "jp", sizeof(ll));
+    }
+    else if (!strncmp(lang->language, "nb", 2) || !strncmp(lang->language, "no", 2))
+    {                                  /* Any Norwegian variant */
+      strlcpy(ll_CC, "nb", sizeof(ll_CC));
+      strlcpy(ll, "no", sizeof(ll));
+    }
     else
       snprintf(ll, sizeof(ll), "%2.2s.", lang->language);
 
index 3e4540c..73356fd 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PWG media name API implementation for CUPS.
  *
- * Copyright 2009-2016 by Apple Inc.
+ * Copyright 2009-2017 by Apple Inc.
  *
  * These coded instructions, statements, and computer programs are the
  * property of Apple Inc. and are protected by Federal copyright
index 1f66ca3..e1b5156 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PPD test program for CUPS.
  *
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2006 by Easy Software Products.
  *
  * These coded instructions, statements, and computer programs are the
index e7ba786..b6e88b0 100644 (file)
@@ -41,6 +41,8 @@ static int            tls_auto_create = 0;
 static char            *tls_common_name = NULL;
                                        /* Default common name */
 #ifdef HAVE_SECKEYCHAINOPEN
+static int             tls_cups_keychain = 0;
+                                       /* Opened the CUPS keychain? */
 static SecKeychainRef  tls_keychain = NULL;
                                        /* Server cert keychain */
 #else
@@ -1747,6 +1749,7 @@ http_cdsa_copy_server(
   CFMutableDictionaryRef query = NULL; /* Query qualifiers */
   CFArrayRef           list = NULL;    /* Keychain list */
   SecKeychainRef       syschain = NULL;/* System keychain */
+  SecKeychainStatus    status = 0;     /* Keychain status */
 
 
   DEBUG_printf(("3http_cdsa_copy_server(common_name=\"%s\")", common_name));
@@ -1769,6 +1772,11 @@ http_cdsa_copy_server(
 
   _cupsMutexLock(&tls_mutex);
 
+  err = SecKeychainGetStatus(tls_keychain, &status);
+
+  if (err == noErr && !(status & kSecUnlockStateStatus) && tls_cups_keychain)
+    SecKeychainUnlock(tls_keychain, _CUPS_CDSA_PASSLEN, _CUPS_CDSA_PASSWORD, TRUE);
+
   CFDictionaryAddValue(query, kSecClass, kSecClassIdentity);
   CFDictionaryAddValue(query, kSecMatchPolicy, policy);
   CFDictionaryAddValue(query, kSecReturnRef, kCFBooleanTrue);
@@ -1901,9 +1909,15 @@ http_cdsa_open_keychain(
   */
 
   if (!path)
+  {
     path = http_cdsa_default_path(filename, filesize);
+    tls_cups_keychain = 1;
+  }
   else
+  {
     strlcpy(filename, path, filesize);
+    tls_cups_keychain = 0;
+  }
 
  /*
   * Save the interaction setting and disable while we open the keychain...
@@ -1912,7 +1926,7 @@ http_cdsa_open_keychain(
   SecKeychainGetUserInteractionAllowed(&interaction);
   SecKeychainSetUserInteractionAllowed(FALSE);
 
-  if (access(path, R_OK))
+  if (access(path, R_OK) && tls_cups_keychain)
   {
    /*
     * Create a new keychain at the given path...
@@ -1931,7 +1945,7 @@ http_cdsa_open_keychain(
     if (err == noErr)
       err = SecKeychainGetStatus(keychain, &status);
 
-    if (err == noErr && !(status & kSecUnlockStateStatus))
+    if (err == noErr && !(status & kSecUnlockStateStatus) && tls_cups_keychain)
       err = SecKeychainUnlock(keychain, _CUPS_CDSA_PASSLEN, _CUPS_CDSA_PASSWORD, TRUE);
   }
 
index 7a6d260..8096e48 100644 (file)
@@ -28,7 +28,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.6\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\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"
@@ -1551,172 +1551,172 @@ msgstr ""
 msgid " PASS"
 msgstr ""
 
-#: cups/ipp.c:5199
+#: cups/ipp.c:5202
 #, c-format
 msgid "\"%s\": Bad URI value \"%s\" - %s (RFC 2911 section 4.1.5)."
 msgstr ""
 
-#: cups/ipp.c:5210
+#: cups/ipp.c:5213
 #, c-format
 msgid "\"%s\": Bad URI value \"%s\" - bad length %d (RFC 2911 section 4.1.5)."
 msgstr ""
 
-#: cups/ipp.c:4830
+#: cups/ipp.c:4833
 #, c-format
 msgid "\"%s\": Bad attribute name - bad length %d (RFC 2911 section 4.1.3)."
 msgstr ""
 
-#: cups/ipp.c:4822
+#: cups/ipp.c:4825
 #, c-format
 msgid "\"%s\": Bad attribute name - invalid character (RFC 2911 section 4.1.3)."
 msgstr ""
 
-#: cups/ipp.c:4848
+#: cups/ipp.c:4851
 #, c-format
 msgid "\"%s\": Bad boolen value %d (RFC 2911 section 4.1.11)."
 msgstr ""
 
-#: cups/ipp.c:5262
+#: cups/ipp.c:5265
 #, c-format
 msgid "\"%s\": Bad charset value \"%s\" - bad characters (RFC 2911 section 4.1.7)."
 msgstr ""
 
-#: cups/ipp.c:5271
+#: cups/ipp.c:5274
 #, c-format
 msgid "\"%s\": Bad charset value \"%s\" - bad length %d (RFC 2911 section 4.1.7)."
 msgstr ""
 
-#: cups/ipp.c:4948
+#: cups/ipp.c:4951
 #, c-format
 msgid "\"%s\": Bad dateTime UTC hours %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4956
+#: cups/ipp.c:4959
 #, c-format
 msgid "\"%s\": Bad dateTime UTC minutes %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4940
+#: cups/ipp.c:4943
 #, c-format
 msgid "\"%s\": Bad dateTime UTC sign '%c' (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4900
+#: cups/ipp.c:4903
 #, c-format
 msgid "\"%s\": Bad dateTime day %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4932
+#: cups/ipp.c:4935
 #, c-format
 msgid "\"%s\": Bad dateTime deciseconds %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4908
+#: cups/ipp.c:4911
 #, c-format
 msgid "\"%s\": Bad dateTime hours %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4916
+#: cups/ipp.c:4919
 #, c-format
 msgid "\"%s\": Bad dateTime minutes %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4892
+#: cups/ipp.c:4895
 #, c-format
 msgid "\"%s\": Bad dateTime month %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4924
+#: cups/ipp.c:4927
 #, c-format
 msgid "\"%s\": Bad dateTime seconds %u (RFC 2911 section 4.1.14)."
 msgstr ""
 
-#: cups/ipp.c:4862
+#: cups/ipp.c:4865
 #, c-format
 msgid "\"%s\": Bad enum value %d - out of range (RFC 2911 section 4.1.4)."
 msgstr ""
 
-#: cups/ipp.c:5177
+#: cups/ipp.c:5180
 #, c-format
 msgid "\"%s\": Bad keyword value \"%s\" - bad length %d (RFC 2911 section 4.1.3)."
 msgstr ""
 
-#: cups/ipp.c:5168
+#: cups/ipp.c:5171
 #, c-format
 msgid "\"%s\": Bad keyword value \"%s\" - invalid character (RFC 2911 section 4.1.3)."
 msgstr ""
 
-#: cups/ipp.c:5371
+#: cups/ipp.c:5374
 #, c-format
 msgid "\"%s\": Bad mimeMediaType value \"%s\" - bad characters (RFC 2911 section 4.1.9)."
 msgstr ""
 
-#: cups/ipp.c:5381
+#: cups/ipp.c:5384
 #, c-format
 msgid "\"%s\": Bad mimeMediaType value \"%s\" - bad length %d (RFC 2911 section 4.1.9)."
 msgstr ""
 
-#: cups/ipp.c:5139
+#: cups/ipp.c:5142
 #, c-format
 msgid "\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.2)."
 msgstr ""
 
-#: cups/ipp.c:5148
+#: cups/ipp.c:5151
 #, c-format
 msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 2911 section 4.1.2)."
 msgstr ""
 
-#: cups/ipp.c:5317
+#: cups/ipp.c:5320
 #, c-format
 msgid "\"%s\": Bad naturalLanguage value \"%s\" - bad characters (RFC 2911 section 4.1.8)."
 msgstr ""
 
-#: cups/ipp.c:5327
+#: cups/ipp.c:5330
 #, c-format
 msgid "\"%s\": Bad naturalLanguage value \"%s\" - bad length %d (RFC 2911 section 4.1.8)."
 msgstr ""
 
-#: cups/ipp.c:4876
+#: cups/ipp.c:4879
 #, c-format
 msgid "\"%s\": Bad octetString value - bad length %d (RFC 2911 section 4.1.10)."
 msgstr ""
 
-#: cups/ipp.c:5019
+#: cups/ipp.c:5022
 #, c-format
 msgid "\"%s\": Bad rangeOfInteger value %d-%d - lower greater than upper (RFC 2911 section 4.1.13)."
 msgstr ""
 
-#: cups/ipp.c:5000
+#: cups/ipp.c:5003
 #, c-format
 msgid "\"%s\": Bad resolution value %dx%d%s - bad units value (RFC 2911 section 4.1.15)."
 msgstr ""
 
-#: cups/ipp.c:4969
+#: cups/ipp.c:4972
 #, c-format
 msgid "\"%s\": Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 2911 section 4.1.15)."
 msgstr ""
 
-#: cups/ipp.c:4984
+#: cups/ipp.c:4987
 #, c-format
 msgid "\"%s\": Bad resolution value %dx%d%s - feed resolution must be positive (RFC 2911 section 4.1.15)."
 msgstr ""
 
-#: cups/ipp.c:5081
+#: cups/ipp.c:5084
 #, c-format
 msgid "\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.1)."
 msgstr ""
 
-#: cups/ipp.c:5090
+#: cups/ipp.c:5093
 #, c-format
 msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 2911 section 4.1.1)."
 msgstr ""
 
-#: cups/ipp.c:5233
+#: cups/ipp.c:5236
 #, c-format
 msgid "\"%s\": Bad uriScheme value \"%s\" - bad characters (RFC 2911 section 4.1.6)."
 msgstr ""
 
-#: cups/ipp.c:5242
+#: cups/ipp.c:5245
 #, c-format
 msgid "\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 2911 section 4.1.6)."
 msgstr ""
@@ -2530,23 +2530,23 @@ msgstr ""
 msgid "2 inches/sec."
 msgstr ""
 
-#: cups/ppd-cache.c:2994
+#: cups/ppd-cache.c:3108
 msgid "2-Hole Punch (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2995
+#: cups/ppd-cache.c:3109
 msgid "2-Hole Punch (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:2993
+#: cups/ppd-cache.c:3107
 msgid "2-Hole Punch (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2992
+#: cups/ppd-cache.c:3106
 msgid "2-Hole Punch (Reverse Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3628 ppdc/sample.c:262
+#: cups/ppd-cache.c:3778 ppdc/sample.c:262
 msgid "2-Sided Printing"
 msgstr ""
 
@@ -2698,19 +2698,19 @@ msgstr ""
 msgid "3 x 5"
 msgstr ""
 
-#: cups/ppd-cache.c:3005
+#: cups/ppd-cache.c:3119
 msgid "3-Hole Punch (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3003
+#: cups/ppd-cache.c:3117
 msgid "3-Hole Punch (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3002
+#: cups/ppd-cache.c:3116
 msgid "3-Hole Punch (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3004
+#: cups/ppd-cache.c:3118
 msgid "3-Hole Punch (Reverse Portrait)"
 msgstr ""
 
@@ -2802,19 +2802,19 @@ msgstr ""
 msgid "4 inches/sec."
 msgstr ""
 
-#: cups/ppd-cache.c:2999
+#: cups/ppd-cache.c:3113
 msgid "4-Hole Punch (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2997
+#: cups/ppd-cache.c:3111
 msgid "4-Hole Punch (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:2996
+#: cups/ppd-cache.c:3110
 msgid "4-Hole Punch (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2998
+#: cups/ppd-cache.c:3112
 msgid "4-Hole Punch (Reverse Portrait)"
 msgstr ""
 
@@ -3212,7 +3212,7 @@ msgstr ""
 msgid "Accepted"
 msgstr ""
 
-#: cups/ppd-cache.c:2975
+#: cups/ppd-cache.c:3089
 msgid "Accordian Fold"
 msgstr ""
 
@@ -3237,15 +3237,19 @@ msgstr ""
 msgid "Administration"
 msgstr ""
 
-#: cups/ppd-cache.c:3327
+#: cups/ppd-cache.c:3539
+msgid "Advanced Photo Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3453
 msgid "Alternate"
 msgstr ""
 
-#: cups/ppd-cache.c:3335
+#: cups/ppd-cache.c:3461
 msgid "Alternate Roll"
 msgstr ""
 
-#: cups/ppd-cache.c:3407
+#: cups/ppd-cache.c:3533
 msgid "Aluminum"
 msgstr ""
 
@@ -3261,14 +3265,22 @@ msgstr ""
 msgid "Applicator"
 msgstr ""
 
-#: cups/ppd-cache.c:3428
+#: cups/ppd-cache.c:3567
 msgid "Archival Envelope"
 msgstr ""
 
-#: cups/ppd-cache.c:3440
+#: cups/ppd-cache.c:3579
 msgid "Archival Fabric"
 msgstr ""
 
+#: cups/ppd-cache.c:3656
+msgid "Archival Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3628
+msgid "Archival Photo Paper"
+msgstr ""
+
 #: scheduler/ipp.c:1012
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
@@ -3289,7 +3301,7 @@ msgstr ""
 msgid "Attribute groups are out of order (%x < %x)."
 msgstr ""
 
-#: cups/ppd-cache.c:3325 cups/ppd-cache.c:3408 cups/ppd-cache.c:3688
+#: cups/ppd-cache.c:3451 cups/ppd-cache.c:3534 cups/ppd-cache.c:3838
 msgid "Automatic"
 msgstr ""
 
@@ -3341,7 +3353,7 @@ msgstr ""
 msgid "B9"
 msgstr ""
 
-#: cups/ppd-cache.c:3409
+#: cups/ppd-cache.c:3535
 msgid "Back Print Film"
 msgstr ""
 
@@ -3366,16 +3378,16 @@ msgstr ""
 msgid "Bad OrderDependency"
 msgstr ""
 
-#: cups/ppd-cache.c:456 cups/ppd-cache.c:503 cups/ppd-cache.c:588
-#: cups/ppd-cache.c:594 cups/ppd-cache.c:610 cups/ppd-cache.c:626
-#: cups/ppd-cache.c:635 cups/ppd-cache.c:643 cups/ppd-cache.c:660
-#: cups/ppd-cache.c:668 cups/ppd-cache.c:683 cups/ppd-cache.c:691
-#: cups/ppd-cache.c:712 cups/ppd-cache.c:724 cups/ppd-cache.c:739
-#: cups/ppd-cache.c:751 cups/ppd-cache.c:773 cups/ppd-cache.c:781
-#: cups/ppd-cache.c:799 cups/ppd-cache.c:807 cups/ppd-cache.c:822
-#: cups/ppd-cache.c:830 cups/ppd-cache.c:848 cups/ppd-cache.c:856
-#: cups/ppd-cache.c:883 cups/ppd-cache.c:953 cups/ppd-cache.c:961
-#: cups/ppd-cache.c:969
+#: cups/ppd-cache.c:457 cups/ppd-cache.c:504 cups/ppd-cache.c:589
+#: cups/ppd-cache.c:595 cups/ppd-cache.c:611 cups/ppd-cache.c:627
+#: cups/ppd-cache.c:636 cups/ppd-cache.c:644 cups/ppd-cache.c:661
+#: cups/ppd-cache.c:669 cups/ppd-cache.c:684 cups/ppd-cache.c:692
+#: cups/ppd-cache.c:713 cups/ppd-cache.c:725 cups/ppd-cache.c:740
+#: cups/ppd-cache.c:752 cups/ppd-cache.c:774 cups/ppd-cache.c:782
+#: cups/ppd-cache.c:800 cups/ppd-cache.c:808 cups/ppd-cache.c:823
+#: cups/ppd-cache.c:831 cups/ppd-cache.c:849 cups/ppd-cache.c:857
+#: cups/ppd-cache.c:884 cups/ppd-cache.c:954 cups/ppd-cache.c:962
+#: cups/ppd-cache.c:970
 msgid "Bad PPD cache file."
 msgstr ""
 
@@ -3547,7 +3559,7 @@ msgstr ""
 msgid "Bad/empty URI"
 msgstr ""
 
-#: cups/ppd-cache.c:2960
+#: cups/ppd-cache.c:3074
 msgid "Bale"
 msgstr ""
 
@@ -3555,27 +3567,27 @@ msgstr ""
 msgid "Banners"
 msgstr ""
 
-#: cups/ppd-cache.c:2961
+#: cups/ppd-cache.c:3075
 msgid "Bind"
 msgstr ""
 
-#: cups/ppd-cache.c:2965
+#: cups/ppd-cache.c:3079
 msgid "Bind (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2963
+#: cups/ppd-cache.c:3077
 msgid "Bind (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:2962
+#: cups/ppd-cache.c:3076
 msgid "Bind (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2964
+#: cups/ppd-cache.c:3078
 msgid "Bind (Reverse Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3429
+#: cups/ppd-cache.c:3568
 msgid "Bond Envelope"
 msgstr ""
 
@@ -3583,7 +3595,11 @@ msgstr ""
 msgid "Bond Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:2966
+#: cups/ppd-cache.c:4063
+msgid "Booklet"
+msgstr ""
+
+#: cups/ppd-cache.c:3080
 msgid "Booklet Maker"
 msgstr ""
 
@@ -3592,11 +3608,11 @@ msgstr ""
 msgid "Boolean expected for waiteof option \"%s\"."
 msgstr ""
 
-#: cups/ppd-cache.c:3338
+#: cups/ppd-cache.c:3464
 msgid "Bottom"
 msgstr ""
 
-#: cups/ppd-cache.c:3689
+#: cups/ppd-cache.c:3839
 msgid "Bottom Tray"
 msgstr ""
 
@@ -3604,7 +3620,7 @@ msgstr ""
 msgid "Buffer overflow detected, aborting."
 msgstr ""
 
-#: cups/ppd-cache.c:3412
+#: cups/ppd-cache.c:3538
 msgid "CD"
 msgstr ""
 
@@ -3624,7 +3640,7 @@ msgstr ""
 msgid "Cancel RSS Subscription"
 msgstr ""
 
-#: backend/ipp.c:2260
+#: backend/ipp.c:2262
 msgid "Canceling print job."
 msgstr ""
 
@@ -3636,11 +3652,11 @@ msgstr ""
 msgid "Cannot share a remote Kerberized printer."
 msgstr ""
 
-#: cups/ppd-cache.c:3410
+#: cups/ppd-cache.c:3536
 msgid "Cardboard"
 msgstr ""
 
-#: cups/ppd-cache.c:3411
+#: cups/ppd-cache.c:3537
 msgid "Cardstock"
 msgstr ""
 
@@ -3648,11 +3664,11 @@ msgstr ""
 msgid "Cassette"
 msgstr ""
 
-#: cups/ppd-cache.c:3342
+#: cups/ppd-cache.c:3468
 msgid "Center"
 msgstr ""
 
-#: cups/ppd-cache.c:3690
+#: cups/ppd-cache.c:3840
 msgid "Center Tray"
 msgstr ""
 
@@ -3678,28 +3694,28 @@ msgstr ""
 msgid "Close-Job doesn't support the job-uri attribute."
 msgstr ""
 
-#: cups/ppd-cache.c:2967
+#: cups/ppd-cache.c:3081
 msgid "Coat"
 msgstr ""
 
-#: cups/ppd-cache.c:3430
+#: cups/ppd-cache.c:3569
 msgid "Coated Envelope"
 msgstr ""
 
-#: cups/ppd-cache.c:3513
+#: cups/ppd-cache.c:3657
 msgid "Coated Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:3592 ppdc/sample.c:276
+#: cups/ppd-cache.c:3742 ppdc/sample.c:276
 msgid "Color"
 msgstr ""
 
-#: cups/ppd-cache.c:3568 cups/ppd-cache.c:3579 cups/ppd-cache.c:3590
-#: cups/ppd-cache.c:3600 ppdc/sample.c:274
+#: cups/ppd-cache.c:3718 cups/ppd-cache.c:3729 cups/ppd-cache.c:3740
+#: cups/ppd-cache.c:3750 ppdc/sample.c:274
 msgid "Color Mode"
 msgstr ""
 
-#: cups/ppd-cache.c:3461
+#: cups/ppd-cache.c:3604
 msgid "Colored Labels"
 msgstr ""
 
@@ -3726,15 +3742,15 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: cups/ppd-cache.c:3413 ppdc/sample.c:360
+#: cups/ppd-cache.c:3552 ppdc/sample.c:360
 msgid "Continuous"
 msgstr ""
 
-#: cups/ppd-cache.c:3414
+#: cups/ppd-cache.c:3553
 msgid "Continuous Long"
 msgstr ""
 
-#: cups/ppd-cache.c:3415
+#: cups/ppd-cache.c:3554
 msgid "Continuous Short"
 msgstr ""
 
@@ -3746,11 +3762,15 @@ msgstr ""
 msgid "Copying print data."
 msgstr ""
 
-#: cups/ppd-cache.c:3431
+#: cups/ppd-cache.c:3570
 msgid "Cotton Envelope"
 msgstr ""
 
-#: cups/ppd-cache.c:2968
+#: cups/ppd-cache.c:3658
+msgid "Cotton Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3082
 msgid "Cover"
 msgstr ""
 
@@ -3766,7 +3786,7 @@ msgstr ""
 msgid "Credentials have expired."
 msgstr ""
 
-#: cups/ppd.c:1136 cups/ppd.c:1176 cups/ppd.c:1421 cups/ppd.c:1524
+#: cups/ppd.c:1152 cups/ppd.c:1192 cups/ppd.c:1437 cups/ppd.c:1540
 msgid "Custom"
 msgstr ""
 
@@ -3782,7 +3802,7 @@ msgstr ""
 msgid "Cut"
 msgstr ""
 
-#: cups/ppd-cache.c:3024
+#: cups/ppd-cache.c:3138
 msgid "Cut Media"
 msgstr ""
 
@@ -3790,7 +3810,7 @@ msgstr ""
 msgid "Cutter"
 msgstr ""
 
-#: cups/ppd-cache.c:3424
+#: cups/ppd-cache.c:3563
 msgid "DVD"
 msgstr ""
 
@@ -3806,7 +3826,7 @@ msgstr ""
 msgid "Data file sent successfully."
 msgstr ""
 
-#: cups/ppd-cache.c:3602
+#: cups/ppd-cache.c:3752
 msgid "Deep Color"
 msgstr ""
 
@@ -3871,7 +3891,7 @@ msgstr ""
 msgid "Disabled"
 msgstr ""
 
-#: cups/ppd-cache.c:3331
+#: cups/ppd-cache.c:3457
 msgid "Disc"
 msgstr ""
 
@@ -3880,35 +3900,36 @@ msgstr ""
 msgid "Document #%d does not exist in job #%d."
 msgstr ""
 
-#: cups/ppd-cache.c:2976
+#: cups/ppd-cache.c:3090
 msgid "Double Gate Fold"
 msgstr ""
 
-#: cups/ppd-cache.c:3017
+#: cups/ppd-cache.c:3131
 msgid "Double Staple (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3015
+#: cups/ppd-cache.c:3129
 msgid "Double Staple (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3014
+#: cups/ppd-cache.c:3128
 msgid "Double Staple (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3016
+#: cups/ppd-cache.c:3130
 msgid "Double Staple (Reverse Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3422
+#: cups/ppd-cache.c:3561
 msgid "Double Wall Cardboard"
 msgstr ""
 
-#: cups/ppd-cache.c:3851 cups/ppd-cache.c:3903
+#: cups/ppd-cache.c:4094 cups/ppd-cache.c:4149 cups/ppd-cache.c:4151
+#: cups/ppd-cache.c:4178
 msgid "Draft"
 msgstr ""
 
-#: cups/ppd-cache.c:3423
+#: cups/ppd-cache.c:3562
 msgid "Dry Film"
 msgstr ""
 
@@ -3934,7 +3955,7 @@ msgstr ""
 msgid "Edit Configuration File"
 msgstr ""
 
-#: cups/ppd-cache.c:3425
+#: cups/ppd-cache.c:3564
 msgid "Embossing Foil"
 msgstr ""
 
@@ -3942,11 +3963,11 @@ msgstr ""
 msgid "Empty PPD file."
 msgstr ""
 
-#: cups/http.c:4614
+#: cups/http.c:4617
 msgid "Encryption is not supported."
 msgstr ""
 
-#: cups/ppd-cache.c:3426
+#: cups/ppd-cache.c:3565
 msgid "End Board"
 msgstr ""
 
@@ -3955,7 +3976,7 @@ msgstr ""
 msgid "Ending Banner"
 msgstr ""
 
-#: cups/ppd-cache.c:2977
+#: cups/ppd-cache.c:3091
 msgid "Engineering Z Fold"
 msgstr ""
 
@@ -3967,7 +3988,7 @@ 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 ""
 
-#: cups/ppd-cache.c:3330 cups/ppd-cache.c:3427
+#: cups/ppd-cache.c:3456 cups/ppd-cache.c:3566
 msgid "Envelope"
 msgstr ""
 
@@ -4195,12 +4216,12 @@ msgstr ""
 msgid "Error Policy"
 msgstr ""
 
-#: filter/rastertopwg.c:454
+#: filter/rastertopwg.c:457
 msgid "Error reading raster data."
 msgstr ""
 
-#: filter/rastertopwg.c:426 filter/rastertopwg.c:444 filter/rastertopwg.c:462
-#: filter/rastertopwg.c:473
+#: filter/rastertopwg.c:426 filter/rastertopwg.c:447 filter/rastertopwg.c:465
+#: filter/rastertopwg.c:476
 msgid "Error sending raster data."
 msgstr ""
 
@@ -4248,6 +4269,14 @@ msgstr ""
 msgid "Every Label"
 msgstr ""
 
+#: cups/ppd-cache.c:3544
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3545
+msgid "Everyday Matte Paper"
+msgstr ""
+
 #: ppdc/sample.c:121
 msgid "Executive"
 msgstr ""
@@ -4264,6 +4293,10 @@ msgstr ""
 msgid "Expressions:"
 msgstr ""
 
+#: cups/ppd-cache.c:3546
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 #: systemv/cupstestdsc.c:164 systemv/cupstestdsc.c:181
 #: systemv/cupstestdsc.c:206 systemv/cupstestdsc.c:223
 #: systemv/cupstestdsc.c:247 systemv/cupstestdsc.c:265
@@ -4274,15 +4307,15 @@ msgstr ""
 msgid "FAIL"
 msgstr ""
 
-#: cups/ppd-cache.c:3439
+#: cups/ppd-cache.c:3578
 msgid "Fabric"
 msgstr ""
 
-#: cups/ppd-cache.c:3691
+#: cups/ppd-cache.c:3841
 msgid "Face Down"
 msgstr ""
 
-#: cups/ppd-cache.c:3692
+#: cups/ppd-cache.c:3842
 msgid "Face Up"
 msgstr ""
 
@@ -4298,7 +4331,7 @@ msgstr ""
 msgid "Fanfold US"
 msgstr ""
 
-#: cups/ppd-cache.c:3570
+#: cups/ppd-cache.c:3720
 msgid "Fast Grayscale"
 msgstr ""
 
@@ -4336,11 +4369,11 @@ msgstr ""
 msgid "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cups-files.conf\"."
 msgstr ""
 
-#: cups/ppd-cache.c:3446
+#: cups/ppd-cache.c:3585
 msgid "Film"
 msgstr ""
 
-#: cups/ppd-cache.c:3432
+#: cups/ppd-cache.c:3571
 msgid "Fine Envelope"
 msgstr ""
 
@@ -4350,27 +4383,23 @@ msgstr ""
 msgid "Finished page %d."
 msgstr ""
 
-#: cups/ppd-cache.c:3767 cups/ppd-cache.c:3812
-msgid "Finishing"
-msgstr ""
-
-#: cups/ppd-cache.c:3447
+#: cups/ppd-cache.c:3586
 msgid "Flexo Base"
 msgstr ""
 
-#: cups/ppd-cache.c:3448
+#: cups/ppd-cache.c:3587
 msgid "Flexo Photo Polymer"
 msgstr ""
 
-#: cups/ppd-cache.c:3449
+#: cups/ppd-cache.c:3588
 msgid "Flute"
 msgstr ""
 
-#: cups/ppd-cache.c:3450
+#: cups/ppd-cache.c:3589
 msgid "Foil"
 msgstr ""
 
-#: cups/ppd-cache.c:2974
+#: cups/ppd-cache.c:3088 cups/ppd-cache.c:3978
 msgid "Fold"
 msgstr ""
 
@@ -4382,15 +4411,15 @@ msgstr ""
 msgid "Forbidden"
 msgstr ""
 
-#: cups/ppd-cache.c:3451
+#: cups/ppd-cache.c:3590
 msgid "Full Cut Tabs"
 msgstr ""
 
-#: cups/ppd-cache.c:2978
+#: cups/ppd-cache.c:3092
 msgid "Gate Fold"
 msgstr ""
 
-#: cups/ppd.c:767 cups/ppd.c:1325
+#: cups/ppd.c:783 cups/ppd.c:1341
 msgid "General"
 msgstr ""
 
@@ -4402,35 +4431,39 @@ msgstr ""
 msgid "Get-Response-PDU uses indefinite length"
 msgstr ""
 
-#: cups/ppd-cache.c:3452
+#: cups/ppd-cache.c:3591
 msgid "Glass"
 msgstr ""
 
-#: cups/ppd-cache.c:3453
+#: cups/ppd-cache.c:3592
 msgid "Glass Colored"
 msgstr ""
 
-#: cups/ppd-cache.c:3454
+#: cups/ppd-cache.c:3593
 msgid "Glass Opaque"
 msgstr ""
 
-#: cups/ppd-cache.c:3455
+#: cups/ppd-cache.c:3594
 msgid "Glass Surfaced"
 msgstr ""
 
-#: cups/ppd-cache.c:3456
+#: cups/ppd-cache.c:3595
 msgid "Glass Textured"
 msgstr ""
 
-#: cups/ppd-cache.c:3441
+#: cups/ppd-cache.c:3540
+msgid "Glossy Brochure Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3580
 msgid "Glossy Fabric"
 msgstr ""
 
-#: cups/ppd-cache.c:3462
+#: cups/ppd-cache.c:3605
 msgid "Glossy Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:3417
+#: cups/ppd-cache.c:3556
 msgid "Glossy Optical Disc"
 msgstr ""
 
@@ -4438,7 +4471,7 @@ msgstr ""
 msgid "Glossy Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:3486
+#: cups/ppd-cache.c:3630
 msgid "Glossy Photo Paper"
 msgstr ""
 
@@ -4449,11 +4482,11 @@ msgstr ""
 msgid "Got a printer-uri attribute but no job-id."
 msgstr ""
 
-#: cups/ppd-cache.c:3457
+#: cups/ppd-cache.c:3596
 msgid "Gravure Cylinder"
 msgstr ""
 
-#: cups/ppd-cache.c:3581 ppdc/sample.c:275
+#: cups/ppd-cache.c:3731 ppdc/sample.c:275
 msgid "Grayscale"
 msgstr ""
 
@@ -4461,15 +4494,15 @@ msgstr ""
 msgid "HP"
 msgstr ""
 
-#: cups/ppd-cache.c:3333
+#: cups/ppd-cache.c:3459
 msgid "Hagaki"
 msgstr ""
 
-#: cups/ppd-cache.c:2979
+#: cups/ppd-cache.c:3093
 msgid "Half Fold"
 msgstr ""
 
-#: cups/ppd-cache.c:2980
+#: cups/ppd-cache.c:3094
 msgid "Half Z Fold"
 msgstr ""
 
@@ -4481,11 +4514,15 @@ msgstr ""
 msgid "Hash buffer too small."
 msgstr ""
 
-#: cups/ppd-cache.c:3433
+#: cups/ppd-cache.c:3661
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3572
 msgid "Heavyweight Envelope"
 msgstr ""
 
-#: cups/ppd-cache.c:3516
+#: cups/ppd-cache.c:3660
 msgid "Heavyweight Paper"
 msgstr ""
 
@@ -4493,115 +4530,115 @@ msgstr ""
 msgid "Help file not in index."
 msgstr ""
 
-#: cups/ppd-cache.c:3858 cups/ppd-cache.c:3906
+#: cups/ppd-cache.c:4104 cups/ppd-cache.c:4154 cups/ppd-cache.c:4181
 msgid "High"
 msgstr ""
 
-#: cups/ppd-cache.c:3442
+#: cups/ppd-cache.c:3581
 msgid "High Gloss Fabric"
 msgstr ""
 
-#: cups/ppd-cache.c:3463
+#: cups/ppd-cache.c:3606
 msgid "High Gloss Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:3418
+#: cups/ppd-cache.c:3557
 msgid "High Gloss Optical Disc"
 msgstr ""
 
-#: cups/ppd-cache.c:3487
+#: cups/ppd-cache.c:3631
 msgid "High Gloss Photo Paper"
 msgstr ""
 
-#: cups/ipp.c:3157 cups/ipp.c:3184 cups/ipp.c:3207
+#: cups/ipp.c:3160 cups/ipp.c:3187 cups/ipp.c:3210
 msgid "IPP 1setOf attribute with incompatible value tags."
 msgstr ""
 
-#: cups/ipp.c:3120
+#: cups/ipp.c:3123
 msgid "IPP attribute has no name."
 msgstr ""
 
-#: cups/ipp.c:6984
+#: cups/ipp.c:6987
 msgid "IPP attribute is not a member of the message."
 msgstr ""
 
-#: cups/ipp.c:3566
+#: cups/ipp.c:3569
 msgid "IPP begCollection value not 0 bytes."
 msgstr ""
 
-#: cups/ipp.c:3348
+#: cups/ipp.c:3351
 msgid "IPP boolean value not 1 byte."
 msgstr ""
 
-#: cups/ipp.c:3409
+#: cups/ipp.c:3412
 msgid "IPP date value not 11 bytes."
 msgstr ""
 
-#: cups/ipp.c:3587
+#: cups/ipp.c:3590
 msgid "IPP endCollection value not 0 bytes."
 msgstr ""
 
-#: cups/ipp.c:3323
+#: cups/ipp.c:3326
 msgid "IPP enum value not 4 bytes."
 msgstr ""
 
-#: cups/ipp.c:3050
+#: cups/ipp.c:3053
 msgid "IPP extension tag larger than 0x7FFFFFFF."
 msgstr ""
 
-#: cups/ipp.c:3320
+#: cups/ipp.c:3323
 msgid "IPP integer value not 4 bytes."
 msgstr ""
 
-#: cups/ipp.c:3519
+#: cups/ipp.c:3522
 msgid "IPP language length overflows value."
 msgstr ""
 
-#: cups/ipp.c:3528
+#: cups/ipp.c:3531
 msgid "IPP language length too large."
 msgstr ""
 
-#: cups/ipp.c:3234
+#: cups/ipp.c:3237
 msgid "IPP member name is not empty."
 msgstr ""
 
-#: cups/ipp.c:3613
+#: cups/ipp.c:3616
 msgid "IPP memberName value is empty."
 msgstr ""
 
-#: cups/ipp.c:3605
+#: cups/ipp.c:3608
 msgid "IPP memberName with no attribute."
 msgstr ""
 
-#: cups/ipp.c:3103
+#: cups/ipp.c:3106
 msgid "IPP name larger than 32767 bytes."
 msgstr ""
 
-#: cups/ipp.c:3486
+#: cups/ipp.c:3489
 msgid "IPP nameWithLanguage value less than minimum 4 bytes."
 msgstr ""
 
-#: cups/ipp.c:3643
+#: cups/ipp.c:3646
 msgid "IPP octetString length too large."
 msgstr ""
 
-#: cups/ipp.c:3454
+#: cups/ipp.c:3457
 msgid "IPP rangeOfInteger value not 8 bytes."
 msgstr ""
 
-#: cups/ipp.c:3427
+#: cups/ipp.c:3430
 msgid "IPP resolution value not 9 bytes."
 msgstr ""
 
-#: cups/ipp.c:3546
+#: cups/ipp.c:3549
 msgid "IPP string length overflows value."
 msgstr ""
 
-#: cups/ipp.c:3482
+#: cups/ipp.c:3485
 msgid "IPP textWithLanguage value less than minimum 4 bytes."
 msgstr ""
 
-#: cups/ipp.c:3306
+#: cups/ipp.c:3309
 msgid "IPP value larger than 32767 bytes."
 msgstr ""
 
@@ -4629,22 +4666,26 @@ msgstr ""
 msgid "Illegal whitespace character"
 msgstr ""
 
-#: cups/ppd-cache.c:3458
+#: cups/ppd-cache.c:3597
 msgid "Image Setter Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:3459
+#: cups/ppd-cache.c:3598
 msgid "Imaging Cylinder"
 msgstr ""
 
-#: cups/ppd-cache.c:3434
+#: cups/ppd-cache.c:3573
 msgid "Inkjet Envelope"
 msgstr ""
 
-#: cups/ppd-cache.c:3464
+#: cups/ppd-cache.c:3607
 msgid "Inkjet Labels"
 msgstr ""
 
+#: cups/ppd-cache.c:3662
+msgid "Inkjet Paper"
+msgstr ""
+
 #: ppdc/sample.c:266
 msgid "Installable Options"
 msgstr ""
@@ -4698,7 +4739,7 @@ msgstr ""
 msgid "Invalid printer command \"%s\"."
 msgstr ""
 
-#: cups/ppd.c:1443
+#: cups/ppd.c:1459
 msgid "JCL"
 msgstr ""
 
@@ -4844,7 +4885,7 @@ msgstr ""
 msgid "Jobs"
 msgstr ""
 
-#: cups/ppd-cache.c:2987
+#: cups/ppd-cache.c:3101
 msgid "Jog"
 msgstr ""
 
@@ -4860,15 +4901,15 @@ msgstr ""
 msgid "Label Top"
 msgstr ""
 
-#: cups/ppd-cache.c:3460
+#: cups/ppd-cache.c:3603
 msgid "Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:2988
+#: cups/ppd-cache.c:3102
 msgid "Laminate"
 msgstr ""
 
-#: cups/ppd-cache.c:3470
+#: cups/ppd-cache.c:3613
 msgid "Laminating Foil"
 msgstr ""
 
@@ -4881,11 +4922,11 @@ msgstr ""
 msgid "Large Address"
 msgstr ""
 
-#: cups/ppd-cache.c:3328
+#: cups/ppd-cache.c:3454
 msgid "Large Capacity"
 msgstr ""
 
-#: cups/ppd-cache.c:3693
+#: cups/ppd-cache.c:3843
 msgid "Large Capacity Tray"
 msgstr ""
 
@@ -4893,19 +4934,19 @@ msgstr ""
 msgid "LaserJet Series PCL 4/5"
 msgstr ""
 
-#: cups/ppd-cache.c:3340
+#: cups/ppd-cache.c:3466
 msgid "Left"
 msgstr ""
 
-#: cups/ppd-cache.c:2981
+#: cups/ppd-cache.c:3095
 msgid "Left Gate Fold"
 msgstr ""
 
-#: cups/ppd-cache.c:3694
+#: cups/ppd-cache.c:3844
 msgid "Left Tray"
 msgstr ""
 
-#: cups/ppd-cache.c:2982
+#: cups/ppd-cache.c:3096
 msgid "Letter Fold"
 msgstr ""
 
@@ -4917,7 +4958,7 @@ msgstr ""
 msgid "Letter Oversize Long Edge"
 msgstr ""
 
-#: cups/ppd-cache.c:3471 cups/ppd-cache.c:3519
+#: cups/ppd-cache.c:3614 cups/ppd-cache.c:3663
 msgid "Letterhead"
 msgstr ""
 
@@ -4925,11 +4966,11 @@ msgstr ""
 msgid "Light"
 msgstr ""
 
-#: cups/ppd-cache.c:3435
+#: cups/ppd-cache.c:3574
 msgid "Lightweight Envelope"
 msgstr ""
 
-#: cups/ppd-cache.c:3520
+#: cups/ppd-cache.c:3664
 msgid "Lightweight Paper"
 msgstr ""
 
@@ -4949,7 +4990,7 @@ msgstr ""
 msgid "Local printer created."
 msgstr ""
 
-#: cups/ppd-cache.c:3628 ppdc/sample.c:264
+#: cups/ppd-cache.c:3778 ppdc/sample.c:264
 msgid "Long-Edge (Portrait)"
 msgstr ""
 
@@ -4957,55 +4998,55 @@ msgstr ""
 msgid "Looking for printer."
 msgstr ""
 
-#: cups/ppd-cache.c:3695
+#: cups/ppd-cache.c:3845
 msgid "Mailbox 1"
 msgstr ""
 
-#: cups/ppd-cache.c:3704
+#: cups/ppd-cache.c:3854
 msgid "Mailbox 10"
 msgstr ""
 
-#: cups/ppd-cache.c:3696
+#: cups/ppd-cache.c:3846
 msgid "Mailbox 2"
 msgstr ""
 
-#: cups/ppd-cache.c:3697
+#: cups/ppd-cache.c:3847
 msgid "Mailbox 3"
 msgstr ""
 
-#: cups/ppd-cache.c:3698
+#: cups/ppd-cache.c:3848
 msgid "Mailbox 4"
 msgstr ""
 
-#: cups/ppd-cache.c:3699
+#: cups/ppd-cache.c:3849
 msgid "Mailbox 5"
 msgstr ""
 
-#: cups/ppd-cache.c:3700
+#: cups/ppd-cache.c:3850
 msgid "Mailbox 6"
 msgstr ""
 
-#: cups/ppd-cache.c:3701
+#: cups/ppd-cache.c:3851
 msgid "Mailbox 7"
 msgstr ""
 
-#: cups/ppd-cache.c:3702
+#: cups/ppd-cache.c:3852
 msgid "Mailbox 8"
 msgstr ""
 
-#: cups/ppd-cache.c:3703
+#: cups/ppd-cache.c:3853
 msgid "Mailbox 9"
 msgstr ""
 
-#: cups/ppd-cache.c:3326
+#: cups/ppd-cache.c:3452
 msgid "Main"
 msgstr ""
 
-#: cups/ppd-cache.c:3334
+#: cups/ppd-cache.c:3460
 msgid "Main Roll"
 msgstr ""
 
-#: cups/ppd-cache.c:3329
+#: cups/ppd-cache.c:3455
 msgid "Manual"
 msgstr ""
 
@@ -5013,27 +5054,35 @@ msgstr ""
 msgid "Manual Feed"
 msgstr ""
 
-#: cups/ppd-cache.c:3443
+#: cups/ppd-cache.c:3541
+msgid "Matte Brochure Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3542
+msgid "Matte Cover Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3582
 msgid "Matte Fabric"
 msgstr ""
 
-#: cups/ppd-cache.c:3465
+#: cups/ppd-cache.c:3608
 msgid "Matte Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:3419
+#: cups/ppd-cache.c:3558
 msgid "Matte Optical Disc"
 msgstr ""
 
-#: cups/ppd-cache.c:3488
+#: cups/ppd-cache.c:3632
 msgid "Matte Photo Paper"
 msgstr ""
 
-#: cups/ppd.c:814 cups/ppd.c:1380
+#: cups/ppd.c:830 cups/ppd.c:1396
 msgid "Media Size"
 msgstr ""
 
-#: cups/ppd.c:818 cups/ppd.c:1384 ppdc/sample.c:254
+#: cups/ppd.c:834 cups/ppd.c:1400 ppdc/sample.c:254
 msgid "Media Source"
 msgstr ""
 
@@ -5041,7 +5090,7 @@ msgstr ""
 msgid "Media Tracking"
 msgstr ""
 
-#: cups/ppd.c:816 cups/ppd.c:1382 ppdc/sample.c:280
+#: cups/ppd.c:832 cups/ppd.c:1398 ppdc/sample.c:280
 msgid "Media Type"
 msgstr ""
 
@@ -5053,31 +5102,35 @@ msgstr ""
 msgid "Memory allocation error"
 msgstr ""
 
-#: cups/ppd-cache.c:3472
+#: cups/ppd-cache.c:3615
 msgid "Metal"
 msgstr ""
 
-#: cups/ppd-cache.c:3473
+#: cups/ppd-cache.c:3616
 msgid "Metal Glossy"
 msgstr ""
 
-#: cups/ppd-cache.c:3474
+#: cups/ppd-cache.c:3617
 msgid "Metal High Gloss"
 msgstr ""
 
-#: cups/ppd-cache.c:3475
+#: cups/ppd-cache.c:3618
 msgid "Metal Matte"
 msgstr ""
 
-#: cups/ppd-cache.c:3476
+#: cups/ppd-cache.c:3619
 msgid "Metal Satin"
 msgstr ""
 
-#: cups/ppd-cache.c:3477
+#: cups/ppd-cache.c:3620
 msgid "Metal Semi Gloss"
 msgstr ""
 
-#: cups/ppd-cache.c:3337 cups/ppd-cache.c:3705
+#: cups/ppd-cache.c:3548
+msgid "Mid-Weight Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3463 cups/ppd-cache.c:3855
 msgid "Middle"
 msgstr ""
 
@@ -5187,7 +5240,7 @@ msgstr ""
 msgid "Modify Printer"
 msgstr ""
 
-#: cups/ppd-cache.c:3478
+#: cups/ppd-cache.c:3621
 msgid "Mounting Tape"
 msgstr ""
 
@@ -5203,35 +5256,39 @@ msgstr ""
 msgid "Moved Permanently"
 msgstr ""
 
-#: cups/ppd-cache.c:3479
+#: cups/ppd-cache.c:3622
 msgid "Multi Layer"
 msgstr ""
 
-#: cups/ppd-cache.c:3480
+#: cups/ppd-cache.c:3623
 msgid "Multi Part Form"
 msgstr ""
 
-#: cups/ppd-cache.c:3009
+#: cups/ppd-cache.c:3123
 msgid "Multi-Hole Punch (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3007
+#: cups/ppd-cache.c:3121
 msgid "Multi-Hole Punch (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3006
+#: cups/ppd-cache.c:3120
 msgid "Multi-Hole Punch (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3008
+#: cups/ppd-cache.c:3122
 msgid "Multi-Hole Punch (Reverse Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3344
+#: cups/ppd-cache.c:3470
 msgid "Multipurpose"
 msgstr ""
 
-#: cups/ppd-cache.c:3706
+#: cups/ppd-cache.c:3547
+msgid "Multipurpose Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3856
 msgid "My Mailbox"
 msgstr ""
 
@@ -5259,7 +5316,7 @@ msgstr ""
 msgid "New credentials are older than stored credentials."
 msgstr ""
 
-#: cups/ppd.c:1971
+#: cups/ppd.c:1987
 msgid "No"
 msgstr ""
 
@@ -5267,8 +5324,8 @@ msgstr ""
 msgid "No Content"
 msgstr ""
 
-#: cups/ppd-cache.c:3767 cups/ppd-cache.c:3812
-msgid "No Finishing"
+#: cups/ppd-cache.c:3157
+msgid "No IPP attributes."
 msgstr ""
 
 #: cups/ppd-util.c:451
@@ -5409,7 +5466,12 @@ msgstr ""
 msgid "Non-continuous (Web sensing)"
 msgstr ""
 
-#: cups/ppd-cache.c:3854 cups/ppd-cache.c:3904 ppdc/sample.c:238
+#: cups/ppd-cache.c:3934 cups/ppd-cache.c:3981 cups/ppd-cache.c:4028
+msgid "None"
+msgstr ""
+
+#: cups/ppd-cache.c:4097 cups/ppd-cache.c:4152 cups/ppd-cache.c:4179
+#: ppdc/sample.c:238
 msgid "Normal"
 msgstr ""
 
@@ -5449,10 +5511,14 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: cups/ppd-cache.c:3628 ppdc/sample.c:263
+#: cups/ppd-cache.c:3778 ppdc/sample.c:263
 msgid "Off (1-Sided)"
 msgstr ""
 
+#: cups/ppd-cache.c:3543
+msgid "Office Recycled Paper"
+msgstr ""
+
 #: ppdc/sample.c:356
 msgid "Oki"
 msgstr ""
@@ -5482,7 +5548,7 @@ msgstr ""
 msgid "Operation Policy"
 msgstr ""
 
-#: cups/ppd-cache.c:3416
+#: cups/ppd-cache.c:3555
 msgid "Optical Disc"
 msgstr ""
 
@@ -5503,19 +5569,19 @@ msgstr ""
 msgid "Options:"
 msgstr ""
 
-#: cups/ppd-cache.c:3481
+#: cups/ppd-cache.c:3624
 msgid "Other"
 msgstr ""
 
-#: cups/ppd-cache.c:464
+#: cups/ppd-cache.c:465
 msgid "Out of date PPD cache file."
 msgstr ""
 
-#: cups/ppd-cache.c:1832
+#: cups/ppd-cache.c:1945
 msgid "Out of memory."
 msgstr ""
 
-#: cups/ppd.c:820 cups/ppd.c:1386
+#: cups/ppd.c:836 cups/ppd.c:1402
 msgid "Output Mode"
 msgstr ""
 
@@ -5571,7 +5637,7 @@ msgstr ""
 msgid "Packet does not start with SEQUENCE"
 msgstr ""
 
-#: cups/ppd-cache.c:3482
+#: cups/ppd-cache.c:3625
 msgid "Paper"
 msgstr ""
 
@@ -5591,7 +5657,7 @@ msgstr ""
 msgid "Paper tray is missing."
 msgstr ""
 
-#: cups/ppd-cache.c:2983
+#: cups/ppd-cache.c:3097
 msgid "Parallel Fold"
 msgstr ""
 
@@ -5625,15 +5691,15 @@ msgstr ""
 msgid "Peel-Off"
 msgstr ""
 
-#: cups/ppd-cache.c:3466
+#: cups/ppd-cache.c:3609
 msgid "Permanent Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:3332 ppdc/sample.c:160
+#: cups/ppd-cache.c:3458 ppdc/sample.c:160
 msgid "Photo"
 msgstr ""
 
-#: cups/ppd-cache.c:3485
+#: cups/ppd-cache.c:3629
 msgid "Photo Film"
 msgstr ""
 
@@ -5641,55 +5707,59 @@ msgstr ""
 msgid "Photo Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:3483
+#: cups/ppd-cache.c:3626 cups/ppd-cache.c:3627
 msgid "Photo Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:3484
-msgid "Photographic Archival"
+#: cups/ppd-cache.c:3599 cups/ppd-cache.c:3601
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+#: cups/ppd-cache.c:3600 cups/ppd-cache.c:3602
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
-#: cups/ppd-cache.c:3436
+#: cups/ppd-cache.c:3575
 msgid "Plain Envelope"
 msgstr ""
 
-#: ppdc/sample.c:281
+#: cups/ppd-cache.c:3655 ppdc/sample.c:281
 msgid "Plain Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:3491
+#: cups/ppd-cache.c:3635
 msgid "Plastic"
 msgstr ""
 
-#: cups/ppd-cache.c:3492
+#: cups/ppd-cache.c:3636
 msgid "Plastic Archival"
 msgstr ""
 
-#: cups/ppd-cache.c:3493
+#: cups/ppd-cache.c:3637
 msgid "Plastic Colored"
 msgstr ""
 
-#: cups/ppd-cache.c:3494
+#: cups/ppd-cache.c:3638
 msgid "Plastic Glossy"
 msgstr ""
 
-#: cups/ppd-cache.c:3495
+#: cups/ppd-cache.c:3639
 msgid "Plastic High Gloss"
 msgstr ""
 
-#: cups/ppd-cache.c:3496
+#: cups/ppd-cache.c:3640
 msgid "Plastic Matte"
 msgstr ""
 
-#: cups/ppd-cache.c:3497
+#: cups/ppd-cache.c:3641
 msgid "Plastic Satin"
 msgstr ""
 
-#: cups/ppd-cache.c:3498
+#: cups/ppd-cache.c:3642
 msgid "Plastic Semi Gloss"
 msgstr ""
 
-#: cups/ppd-cache.c:3499
+#: cups/ppd-cache.c:3643
 msgid "Plate"
 msgstr ""
 
@@ -5697,7 +5767,7 @@ msgstr ""
 msgid "Policies"
 msgstr ""
 
-#: cups/ppd-cache.c:3500
+#: cups/ppd-cache.c:3644
 msgid "Polyester"
 msgstr ""
 
@@ -5725,23 +5795,35 @@ msgstr ""
 msgid "Postcard Long Edge"
 msgstr ""
 
-#: cups/ppd-cache.c:2984
+#: cups/ppd-cache.c:3098
 msgid "Poster Fold"
 msgstr ""
 
-#: cups/ppd-cache.c:3501
+#: cups/ppd-cache.c:3645
 msgid "Pre Cut Tabs"
 msgstr ""
 
+#: cups/ppd-cache.c:3549
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3550
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+#: cups/ppd-cache.c:3551
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 #: backend/ipp.c:981 backend/ipp.c:989
 msgid "Preparing to print."
 msgstr ""
 
-#: cups/ppd-cache.c:3437
+#: cups/ppd-cache.c:3576
 msgid "Preprinted Envelope"
 msgstr ""
 
-#: cups/ppd-cache.c:3521
+#: cups/ppd-cache.c:3665
 msgid "Preprinted Paper"
 msgstr ""
 
@@ -5757,7 +5839,7 @@ msgstr ""
 msgid "Print Mode"
 msgstr ""
 
-#: cups/ppd-cache.c:3847 cups/ppd-cache.c:3901
+#: cups/ppd-cache.c:4090 cups/ppd-cache.c:4147 cups/ppd-cache.c:4176
 msgid "Print Quality"
 msgstr ""
 
@@ -5789,15 +5871,15 @@ msgstr ""
 msgid "Print file sent."
 msgstr ""
 
-#: backend/ipp.c:2234
+#: backend/ipp.c:2236
 msgid "Print job canceled at printer."
 msgstr ""
 
-#: backend/ipp.c:2226
+#: backend/ipp.c:2228
 msgid "Print job too large."
 msgstr ""
 
-#: backend/ipp.c:1695
+#: backend/ipp.c:1697
 msgid "Print job was not accepted."
 msgstr ""
 
@@ -5830,14 +5912,18 @@ msgstr ""
 msgid "Printer Settings"
 msgstr ""
 
-#: backend/ipp.c:2229
+#: backend/ipp.c:2231
 msgid "Printer cannot print supplied content."
 msgstr ""
 
-#: backend/ipp.c:2232
+#: backend/ipp.c:2234
 msgid "Printer cannot print with supplied options."
 msgstr ""
 
+#: cups/ppd-cache.c:4203
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 #: cups/notify.c:118
 msgid "Printer:"
 msgstr ""
@@ -5852,11 +5938,11 @@ msgstr ""
 msgid "Printing page %d, %u%% complete."
 msgstr ""
 
-#: cups/ppd-cache.c:2989
+#: cups/ppd-cache.c:3103 cups/ppd-cache.c:4025
 msgid "Punch"
 msgstr ""
 
-#: cups/ppd-cache.c:3522
+#: cups/ppd-cache.c:3666
 msgid "Punched Paper"
 msgstr ""
 
@@ -5872,11 +5958,11 @@ msgstr ""
 msgid "Rank    Owner   Job     File(s)                         Total Size"
 msgstr ""
 
-#: cups/ppd-cache.c:3343
+#: cups/ppd-cache.c:3469
 msgid "Rear"
 msgstr ""
 
-#: cups/ppd-cache.c:3707
+#: cups/ppd-cache.c:3857
 msgid "Rear Tray"
 msgstr ""
 
@@ -5902,7 +5988,7 @@ msgstr ""
 msgid "Request Entity Too Large"
 msgstr ""
 
-#: cups/ppd.c:822 cups/ppd.c:1388 ppdc/sample.c:231
+#: cups/ppd.c:838 cups/ppd.c:1404 ppdc/sample.c:231
 msgid "Resolution"
 msgstr ""
 
@@ -5922,59 +6008,59 @@ msgstr ""
 msgid "Rewind"
 msgstr ""
 
-#: cups/ppd-cache.c:3341
+#: cups/ppd-cache.c:3467
 msgid "Right"
 msgstr ""
 
-#: cups/ppd-cache.c:2985
+#: cups/ppd-cache.c:3099
 msgid "Right Gate Fold"
 msgstr ""
 
-#: cups/ppd-cache.c:3708
+#: cups/ppd-cache.c:3858
 msgid "Right Tray"
 msgstr ""
 
-#: cups/ppd-cache.c:3502
+#: cups/ppd-cache.c:3646
 msgid "Roll"
 msgstr ""
 
-#: cups/ppd-cache.c:3365
+#: cups/ppd-cache.c:3491
 msgid "Roll 1"
 msgstr ""
 
-#: cups/ppd-cache.c:3374
+#: cups/ppd-cache.c:3500
 msgid "Roll 10"
 msgstr ""
 
-#: cups/ppd-cache.c:3366
+#: cups/ppd-cache.c:3492
 msgid "Roll 2"
 msgstr ""
 
-#: cups/ppd-cache.c:3367
+#: cups/ppd-cache.c:3493
 msgid "Roll 3"
 msgstr ""
 
-#: cups/ppd-cache.c:3368
+#: cups/ppd-cache.c:3494
 msgid "Roll 4"
 msgstr ""
 
-#: cups/ppd-cache.c:3369
+#: cups/ppd-cache.c:3495
 msgid "Roll 5"
 msgstr ""
 
-#: cups/ppd-cache.c:3370
+#: cups/ppd-cache.c:3496
 msgid "Roll 6"
 msgstr ""
 
-#: cups/ppd-cache.c:3371
+#: cups/ppd-cache.c:3497
 msgid "Roll 7"
 msgstr ""
 
-#: cups/ppd-cache.c:3372
+#: cups/ppd-cache.c:3498
 msgid "Roll 8"
 msgstr ""
 
-#: cups/ppd-cache.c:3373
+#: cups/ppd-cache.c:3499
 msgid "Roll 9"
 msgstr ""
 
@@ -5991,31 +6077,31 @@ msgstr ""
 msgid "SSL/TLS Negotiation Error"
 msgstr ""
 
-#: cups/ppd-cache.c:3010
+#: cups/ppd-cache.c:3124
 msgid "Saddle Stitch"
 msgstr ""
 
-#: cups/ppd-cache.c:3467
+#: cups/ppd-cache.c:3610
 msgid "Satin Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:3420
+#: cups/ppd-cache.c:3559
 msgid "Satin Optical Disc"
 msgstr ""
 
-#: cups/ppd-cache.c:3489
+#: cups/ppd-cache.c:3633
 msgid "Satin Photo Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:3503
+#: cups/ppd-cache.c:3647
 msgid "Screen"
 msgstr ""
 
-#: cups/ppd-cache.c:3504
+#: cups/ppd-cache.c:3648
 msgid "Screen Paged"
 msgstr ""
 
-#: cups/ppd-cache.c:3468
+#: cups/ppd-cache.c:3611
 msgid "Security Labels"
 msgstr ""
 
@@ -6027,11 +6113,11 @@ msgstr ""
 msgid "See remote printer."
 msgstr ""
 
-#: cups/ppd-cache.c:3505
+#: cups/ppd-cache.c:3649
 msgid "Self Adhesive"
 msgstr ""
 
-#: cups/ppd-cache.c:3506
+#: cups/ppd-cache.c:3650
 msgid "Self Adhesive Film"
 msgstr ""
 
@@ -6039,19 +6125,19 @@ msgstr ""
 msgid "Self-signed credentials are blocked."
 msgstr ""
 
-#: cups/ppd-cache.c:3444
+#: cups/ppd-cache.c:3583
 msgid "Semi-Gloss Fabric"
 msgstr ""
 
-#: cups/ppd-cache.c:3469
+#: cups/ppd-cache.c:3612
 msgid "Semi-Gloss Labels"
 msgstr ""
 
-#: cups/ppd-cache.c:3421
+#: cups/ppd-cache.c:3560
 msgid "Semi-Gloss Optical Disc"
 msgstr ""
 
-#: cups/ppd-cache.c:3490
+#: cups/ppd-cache.c:3634
 msgid "Semi-Gloss Photo Paper"
 msgstr ""
 
@@ -6108,63 +6194,63 @@ msgstr ""
 msgid "Shipping Address"
 msgstr ""
 
-#: cups/ppd-cache.c:3628 ppdc/sample.c:265
+#: cups/ppd-cache.c:3778 ppdc/sample.c:265
 msgid "Short-Edge (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3507
+#: cups/ppd-cache.c:3651
 msgid "Shrink Foil"
 msgstr ""
 
-#: cups/ppd-cache.c:3339
+#: cups/ppd-cache.c:3465
 msgid "Side"
 msgstr ""
 
-#: cups/ppd-cache.c:3709
+#: cups/ppd-cache.c:3859
 msgid "Side Tray"
 msgstr ""
 
-#: cups/ppd-cache.c:3508
+#: cups/ppd-cache.c:3652
 msgid "Single Face"
 msgstr ""
 
-#: cups/ppd-cache.c:3001
+#: cups/ppd-cache.c:3115
 msgid "Single Punch (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3000
+#: cups/ppd-cache.c:3114
 msgid "Single Punch (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:2990
+#: cups/ppd-cache.c:3104
 msgid "Single Punch (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2991
+#: cups/ppd-cache.c:3105
 msgid "Single Punch (Reverse Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3019
+#: cups/ppd-cache.c:3133
 msgid "Single Staple (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3018
+#: cups/ppd-cache.c:3132
 msgid "Single Staple (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3012
+#: cups/ppd-cache.c:3126
 msgid "Single Staple (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3013
+#: cups/ppd-cache.c:3127
 msgid "Single Staple (Reverse Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3509
+#: cups/ppd-cache.c:3653
 msgid "Single Wall Cardboard"
 msgstr ""
 
-#: cups/ppd-cache.c:3510
+#: cups/ppd-cache.c:3654
 msgid "Sleeve"
 msgstr ""
 
@@ -6177,43 +6263,43 @@ msgstr ""
 msgid "Spooling job, %.0f%% complete."
 msgstr ""
 
-#: cups/ppd-cache.c:3710
+#: cups/ppd-cache.c:3860
 msgid "Stacker 1"
 msgstr ""
 
-#: cups/ppd-cache.c:3719
+#: cups/ppd-cache.c:3869
 msgid "Stacker 10"
 msgstr ""
 
-#: cups/ppd-cache.c:3711
+#: cups/ppd-cache.c:3861
 msgid "Stacker 2"
 msgstr ""
 
-#: cups/ppd-cache.c:3712
+#: cups/ppd-cache.c:3862
 msgid "Stacker 3"
 msgstr ""
 
-#: cups/ppd-cache.c:3713
+#: cups/ppd-cache.c:3863
 msgid "Stacker 4"
 msgstr ""
 
-#: cups/ppd-cache.c:3714
+#: cups/ppd-cache.c:3864
 msgid "Stacker 5"
 msgstr ""
 
-#: cups/ppd-cache.c:3715
+#: cups/ppd-cache.c:3865
 msgid "Stacker 6"
 msgstr ""
 
-#: cups/ppd-cache.c:3716
+#: cups/ppd-cache.c:3866
 msgid "Stacker 7"
 msgstr ""
 
-#: cups/ppd-cache.c:3717
+#: cups/ppd-cache.c:3867
 msgid "Stacker 8"
 msgstr ""
 
-#: cups/ppd-cache.c:3718
+#: cups/ppd-cache.c:3868
 msgid "Stacker 9"
 msgstr ""
 
@@ -6221,27 +6307,27 @@ msgstr ""
 msgid "Standard"
 msgstr ""
 
-#: cups/ppd-cache.c:3011
+#: cups/ppd-cache.c:3125 cups/ppd-cache.c:3931
 msgid "Staple"
 msgstr ""
 
-#: cups/ppd-cache.c:2969
+#: cups/ppd-cache.c:3083
 msgid "Staple Edge"
 msgstr ""
 
-#: cups/ppd-cache.c:2973
+#: cups/ppd-cache.c:3087
 msgid "Staple Edge (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2971
+#: cups/ppd-cache.c:3085
 msgid "Staple Edge (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:2970
+#: cups/ppd-cache.c:3084
 msgid "Staple Edge (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:2972
+#: cups/ppd-cache.c:3086
 msgid "Staple Edge (Reverse Portrait)"
 msgstr ""
 
@@ -6260,26 +6346,6 @@ msgstr ""
 msgid "Statement"
 msgstr ""
 
-#: cups/ppd-cache.c:3511
-msgid "Stationery"
-msgstr ""
-
-#: cups/ppd-cache.c:3512
-msgid "Stationery Archival"
-msgstr ""
-
-#: cups/ppd-cache.c:3514
-msgid "Stationery Cotton"
-msgstr ""
-
-#: cups/ppd-cache.c:3517
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-#: cups/ppd-cache.c:3518
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #: scheduler/ipp.c:3593 scheduler/ipp.c:6892 scheduler/ipp.c:7602
 #: scheduler/ipp.c:9123
 #, c-format
@@ -6306,7 +6372,7 @@ msgstr ""
 msgid "Switching Protocols"
 msgstr ""
 
-#: cups/ppd-cache.c:3523
+#: cups/ppd-cache.c:3667
 msgid "Tab Stock"
 msgstr ""
 
@@ -6416,7 +6482,7 @@ msgid "The printer did not respond."
 msgstr ""
 
 #: backend/ipp.c:774 backend/ipp.c:964 backend/ipp.c:1078 backend/ipp.c:1499
-#: backend/ipp.c:1667 backend/lpd.c:897 backend/socket.c:360
+#: backend/ipp.c:1669 backend/lpd.c:897 backend/socket.c:360
 #: backend/usb-unix.c:122 backend/usb-unix.c:412 backend/usb-unix.c:495
 msgid "The printer is in use."
 msgstr ""
@@ -6562,23 +6628,23 @@ msgstr ""
 msgid "Too many printer-state-reasons values (%d > %d)."
 msgstr ""
 
-#: cups/ppd-cache.c:3336
+#: cups/ppd-cache.c:3462
 msgid "Top"
 msgstr ""
 
-#: cups/ppd-cache.c:3720
+#: cups/ppd-cache.c:3870
 msgid "Top Tray"
 msgstr ""
 
-#: cups/ppd-cache.c:3524
+#: cups/ppd-cache.c:3668
 msgid "Tractor"
 msgstr ""
 
-#: cups/ppd-cache.c:3525
+#: cups/ppd-cache.c:3669
 msgid "Transfer"
 msgstr ""
 
-#: cups/ppd-cache.c:3526 ppdc/sample.c:284
+#: cups/ppd-cache.c:3670 ppdc/sample.c:284
 msgid "Transparency"
 msgstr ""
 
@@ -6586,103 +6652,103 @@ msgstr ""
 msgid "Tray"
 msgstr ""
 
-#: cups/ppd-cache.c:3345 cups/ppd-cache.c:3721 ppdc/sample.c:256
+#: cups/ppd-cache.c:3471 cups/ppd-cache.c:3871 ppdc/sample.c:256
 msgid "Tray 1"
 msgstr ""
 
-#: cups/ppd-cache.c:3354 cups/ppd-cache.c:3730
+#: cups/ppd-cache.c:3480 cups/ppd-cache.c:3880
 msgid "Tray 10"
 msgstr ""
 
-#: cups/ppd-cache.c:3355
+#: cups/ppd-cache.c:3481
 msgid "Tray 11"
 msgstr ""
 
-#: cups/ppd-cache.c:3356
+#: cups/ppd-cache.c:3482
 msgid "Tray 12"
 msgstr ""
 
-#: cups/ppd-cache.c:3357
+#: cups/ppd-cache.c:3483
 msgid "Tray 13"
 msgstr ""
 
-#: cups/ppd-cache.c:3358
+#: cups/ppd-cache.c:3484
 msgid "Tray 14"
 msgstr ""
 
-#: cups/ppd-cache.c:3359
+#: cups/ppd-cache.c:3485
 msgid "Tray 15"
 msgstr ""
 
-#: cups/ppd-cache.c:3360
+#: cups/ppd-cache.c:3486
 msgid "Tray 16"
 msgstr ""
 
-#: cups/ppd-cache.c:3361
+#: cups/ppd-cache.c:3487
 msgid "Tray 17"
 msgstr ""
 
-#: cups/ppd-cache.c:3362
+#: cups/ppd-cache.c:3488
 msgid "Tray 18"
 msgstr ""
 
-#: cups/ppd-cache.c:3363
+#: cups/ppd-cache.c:3489
 msgid "Tray 19"
 msgstr ""
 
-#: cups/ppd-cache.c:3346 cups/ppd-cache.c:3722 ppdc/sample.c:257
+#: cups/ppd-cache.c:3472 cups/ppd-cache.c:3872 ppdc/sample.c:257
 msgid "Tray 2"
 msgstr ""
 
-#: cups/ppd-cache.c:3364
+#: cups/ppd-cache.c:3490
 msgid "Tray 20"
 msgstr ""
 
-#: cups/ppd-cache.c:3347 cups/ppd-cache.c:3723 ppdc/sample.c:258
+#: cups/ppd-cache.c:3473 cups/ppd-cache.c:3873 ppdc/sample.c:258
 msgid "Tray 3"
 msgstr ""
 
-#: cups/ppd-cache.c:3348 cups/ppd-cache.c:3724 ppdc/sample.c:259
+#: cups/ppd-cache.c:3474 cups/ppd-cache.c:3874 ppdc/sample.c:259
 msgid "Tray 4"
 msgstr ""
 
-#: cups/ppd-cache.c:3349 cups/ppd-cache.c:3725
+#: cups/ppd-cache.c:3475 cups/ppd-cache.c:3875
 msgid "Tray 5"
 msgstr ""
 
-#: cups/ppd-cache.c:3350 cups/ppd-cache.c:3726
+#: cups/ppd-cache.c:3476 cups/ppd-cache.c:3876
 msgid "Tray 6"
 msgstr ""
 
-#: cups/ppd-cache.c:3351 cups/ppd-cache.c:3727
+#: cups/ppd-cache.c:3477 cups/ppd-cache.c:3877
 msgid "Tray 7"
 msgstr ""
 
-#: cups/ppd-cache.c:3352 cups/ppd-cache.c:3728
+#: cups/ppd-cache.c:3478 cups/ppd-cache.c:3878
 msgid "Tray 8"
 msgstr ""
 
-#: cups/ppd-cache.c:3353 cups/ppd-cache.c:3729
+#: cups/ppd-cache.c:3479 cups/ppd-cache.c:3879
 msgid "Tray 9"
 msgstr ""
 
-#: cups/ppd-cache.c:3023
+#: cups/ppd-cache.c:3137
 msgid "Triple Staple (Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3021
+#: cups/ppd-cache.c:3135
 msgid "Triple Staple (Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3020
+#: cups/ppd-cache.c:3134
 msgid "Triple Staple (Reverse Landscape)"
 msgstr ""
 
-#: cups/ppd-cache.c:3022
+#: cups/ppd-cache.c:3136
 msgid "Triple Staple (Reverse Portrait)"
 msgstr ""
 
-#: cups/ppd-cache.c:3527
+#: cups/ppd-cache.c:3671
 msgid "Triple Wall Cardboard"
 msgstr ""
 
@@ -6747,7 +6813,7 @@ msgstr ""
 msgid "Unable to add class"
 msgstr ""
 
-#: backend/ipp.c:1854
+#: backend/ipp.c:1856
 msgid "Unable to add document to print job."
 msgstr ""
 
@@ -6776,7 +6842,7 @@ msgstr ""
 msgid "Unable to cancel RSS subscription"
 msgstr ""
 
-#: backend/ipp.c:2139 backend/ipp.c:2649
+#: backend/ipp.c:2141 backend/ipp.c:2651
 msgid "Unable to cancel print job."
 msgstr ""
 
@@ -6792,12 +6858,12 @@ msgstr ""
 msgid "Unable to change server settings"
 msgstr ""
 
-#: cups/ipp.c:5361
+#: cups/ipp.c:5364
 #, c-format
 msgid "Unable to compile mimeMediaType regular expression: %s."
 msgstr ""
 
-#: cups/ipp.c:5307
+#: cups/ipp.c:5310
 #, c-format
 msgid "Unable to compile naturalLanguage regular expression: %s."
 msgstr ""
@@ -6929,7 +6995,7 @@ msgstr ""
 msgid "Unable to find server credentials."
 msgstr ""
 
-#: backend/ipp.c:3310
+#: backend/ipp.c:3312
 msgid "Unable to get backend exit status."
 msgstr ""
 
@@ -7022,7 +7088,7 @@ msgstr ""
 msgid "Unable to open help file."
 msgstr ""
 
-#: backend/ipp.c:384 backend/ipp.c:1594 backend/ipp.c:1807 backend/lpd.c:479
+#: backend/ipp.c:384 backend/ipp.c:1596 backend/ipp.c:1809 backend/lpd.c:479
 #: backend/socket.c:147 backend/usb.c:229 filter/gziptoany.c:71
 #: filter/pstops.c:268
 msgid "Unable to open print file"
@@ -7080,7 +7146,7 @@ msgstr ""
 msgid "Unable to set server default"
 msgstr ""
 
-#: backend/ipp.c:3169 backend/ipp.c:3246 backend/ipp.c:3254
+#: backend/ipp.c:3171 backend/ipp.c:3248 backend/ipp.c:3256
 msgid "Unable to start backend process."
 msgstr ""
 
@@ -7366,7 +7432,7 @@ msgstr ""
 msgid "VarBind uses indefinite length"
 msgstr ""
 
-#: cups/ppd-cache.c:3515
+#: cups/ppd-cache.c:3659
 msgid "Vellum Paper"
 msgstr ""
 
@@ -7374,7 +7440,7 @@ msgstr ""
 msgid "Version uses indefinite length"
 msgstr ""
 
-#: backend/ipp.c:1974
+#: backend/ipp.c:1976
 msgid "Waiting for job to complete."
 msgstr ""
 
@@ -7390,7 +7456,7 @@ msgstr ""
 msgid "Warning, no Windows 2000 printer drivers are installed."
 msgstr ""
 
-#: cups/ppd-cache.c:3445
+#: cups/ppd-cache.c:3584
 msgid "Waterproof Fabric"
 msgstr ""
 
@@ -7398,15 +7464,15 @@ msgstr ""
 msgid "Web Interface is Disabled"
 msgstr ""
 
-#: cups/ppd-cache.c:3528
+#: cups/ppd-cache.c:3672
 msgid "Wet Film"
 msgstr ""
 
-#: cups/ppd-cache.c:3438
+#: cups/ppd-cache.c:3577
 msgid "Windowed Envelope"
 msgstr ""
 
-#: cups/ppd.c:1969
+#: cups/ppd.c:1985
 msgid "Yes"
 msgstr ""
 
@@ -7415,7 +7481,7 @@ msgstr ""
 msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
 msgstr ""
 
-#: cups/ppd-cache.c:2986
+#: cups/ppd-cache.c:3100
 msgid "Z Fold"
 msgstr ""
 
index 568b034..0f267cb 100644 (file)
 "0" = "0";
 "1" = "1";
 "1 inch/sec." = "1 inch/sec.";
-"1.25x0.25\"" = "1.25x0.25\"";
-"1.25x2.25\"" = "1.25x2.25\"";
+"1.25x0.25\"" = "1.25x0.25";
+"1.25x2.25\"" = "1.25x2.25";
 "1.5 inch/sec." = "1.5 inch/sec.";
-"1.50x0.25\"" = "1.50x0.25\"";
-"1.50x0.50\"" = "1.50x0.50\"";
-"1.50x1.00\"" = "1.50x1.00\"";
-"1.50x2.00\"" = "1.50x2.00\"";
+"1.50x0.25\"" = "1.50x0.25";
+"1.50x0.50\"" = "1.50x0.50";
+"1.50x1.00\"" = "1.50x1.00";
+"1.50x2.00\"" = "1.50x2.00";
 "10" = "10";
 "10 inches/sec." = "10 inches/sec.";
 "10 x 11" = "10 x 11";
 "2-Hole Punch (Reverse Landscape)" = "2-Hole Punch (Reverse Landscape)";
 "2-Hole Punch (Reverse Portrait)" = "2-Hole Punch (Reverse Portrait)";
 "2-Sided Printing" = "2-Sided Printing";
-"2.00x0.37\"" = "2.00x0.37\"";
-"2.00x0.50\"" = "2.00x0.50\"";
-"2.00x1.00\"" = "2.00x1.00\"";
-"2.00x1.25\"" = "2.00x1.25\"";
-"2.00x2.00\"" = "2.00x2.00\"";
-"2.00x3.00\"" = "2.00x3.00\"";
-"2.00x4.00\"" = "2.00x4.00\"";
-"2.00x5.50\"" = "2.00x5.50\"";
-"2.25x0.50\"" = "2.25x0.50\"";
-"2.25x1.25\"" = "2.25x1.25\"";
-"2.25x4.00\"" = "2.25x4.00\"";
-"2.25x5.50\"" = "2.25x5.50\"";
-"2.38x5.50\"" = "2.38x5.50\"";
+"2.00x0.37\"" = "2.00x0.37";
+"2.00x0.50\"" = "2.00x0.50";
+"2.00x1.00\"" = "2.00x1.00";
+"2.00x1.25\"" = "2.00x1.25";
+"2.00x2.00\"" = "2.00x2.00";
+"2.00x3.00\"" = "2.00x3.00";
+"2.00x4.00\"" = "2.00x4.00";
+"2.00x5.50\"" = "2.00x5.50";
+"2.25x0.50\"" = "2.25x0.50";
+"2.25x1.25\"" = "2.25x1.25";
+"2.25x4.00\"" = "2.25x4.00";
+"2.25x5.50\"" = "2.25x5.50";
+"2.38x5.50\"" = "2.38x5.50";
 "2.5 inches/sec." = "2.5 inches/sec.";
-"2.50x1.00\"" = "2.50x1.00\"";
-"2.50x2.00\"" = "2.50x2.00\"";
-"2.75x1.25\"" = "2.75x1.25\"";
-"2.9 x 1\"" = "2.9 x 1\"";
+"2.50x1.00\"" = "2.50x1.00";
+"2.50x2.00\"" = "2.50x2.00";
+"2.75x1.25\"" = "2.75x1.25";
+"2.9 x 1\"" = "2.9 x 1";
 "20" = "20";
 "20 mm/sec." = "20 mm/sec.";
 "200 mm/sec." = "200 mm/sec.";
 "3-Hole Punch (Portrait)" = "3-Hole Punch (Portrait)";
 "3-Hole Punch (Reverse Landscape)" = "3-Hole Punch (Reverse Landscape)";
 "3-Hole Punch (Reverse Portrait)" = "3-Hole Punch (Reverse Portrait)";
-"3.00x1.00\"" = "3.00x1.00\"";
-"3.00x1.25\"" = "3.00x1.25\"";
-"3.00x2.00\"" = "3.00x2.00\"";
-"3.00x3.00\"" = "3.00x3.00\"";
-"3.00x5.00\"" = "3.00x5.00\"";
-"3.25x2.00\"" = "3.25x2.00\"";
-"3.25x5.00\"" = "3.25x5.00\"";
-"3.25x5.50\"" = "3.25x5.50\"";
-"3.25x5.83\"" = "3.25x5.83\"";
-"3.25x7.83\"" = "3.25x7.83\"";
+"3.00x1.00\"" = "3.00x1.00";
+"3.00x1.25\"" = "3.00x1.25";
+"3.00x2.00\"" = "3.00x2.00";
+"3.00x3.00\"" = "3.00x3.00";
+"3.00x5.00\"" = "3.00x5.00";
+"3.25x2.00\"" = "3.25x2.00";
+"3.25x5.00\"" = "3.25x5.00";
+"3.25x5.50\"" = "3.25x5.50";
+"3.25x5.83\"" = "3.25x5.83";
+"3.25x7.83\"" = "3.25x7.83";
 "3.5 x 5" = "3.5 x 5";
-"3.5\" Disk" = "3.5\" Disk";
-"3.50x1.00\"" = "3.50x1.00\"";
+"3.5\" Disk" = "3.5 Disk";
+"3.50x1.00\"" = "3.50x1.00";
 "30" = "30";
 "30 mm/sec." = "30 mm/sec.";
 "300 mm/sec." = "300 mm/sec.";
 "4-Hole Punch (Portrait)" = "4-Hole Punch (Portrait)";
 "4-Hole Punch (Reverse Landscape)" = "4-Hole Punch (Reverse Landscape)";
 "4-Hole Punch (Reverse Portrait)" = "4-Hole Punch (Reverse Portrait)";
-"4.00x1.00\"" = "4.00x1.00\"";
-"4.00x13.00\"" = "4.00x13.00\"";
-"4.00x2.00\"" = "4.00x2.00\"";
-"4.00x2.50\"" = "4.00x2.50\"";
-"4.00x3.00\"" = "4.00x3.00\"";
-"4.00x4.00\"" = "4.00x4.00\"";
-"4.00x5.00\"" = "4.00x5.00\"";
-"4.00x6.00\"" = "4.00x6.00\"";
-"4.00x6.50\"" = "4.00x6.50\"";
+"4.00x1.00\"" = "4.00x1.00";
+"4.00x13.00\"" = "4.00x13.00";
+"4.00x2.00\"" = "4.00x2.00";
+"4.00x2.50\"" = "4.00x2.50";
+"4.00x3.00\"" = "4.00x3.00";
+"4.00x4.00\"" = "4.00x4.00";
+"4.00x5.00\"" = "4.00x5.00";
+"4.00x6.00\"" = "4.00x6.00";
+"4.00x6.50\"" = "4.00x6.50";
 "40" = "40";
 "40 mm/sec." = "40 mm/sec.";
 "45" = "45";
 "55" = "55";
 "6" = "6";
 "6 inches/sec." = "6 inches/sec.";
-"6.00x1.00\"" = "6.00x1.00\"";
-"6.00x2.00\"" = "6.00x2.00\"";
-"6.00x3.00\"" = "6.00x3.00\"";
-"6.00x4.00\"" = "6.00x4.00\"";
-"6.00x5.00\"" = "6.00x5.00\"";
-"6.00x6.00\"" = "6.00x6.00\"";
-"6.00x6.50\"" = "6.00x6.50\"";
+"6.00x1.00\"" = "6.00x1.00";
+"6.00x2.00\"" = "6.00x2.00";
+"6.00x3.00\"" = "6.00x3.00";
+"6.00x4.00\"" = "6.00x4.00";
+"6.00x5.00\"" = "6.00x5.00";
+"6.00x6.00\"" = "6.00x6.00";
+"6.00x6.50\"" = "6.00x6.50";
 "60" = "60";
 "60 mm/sec." = "60 mm/sec.";
 "600dpi" = "600dpi";
 "8" = "8";
 "8 inches/sec." = "8 inches/sec.";
 "8 x 10" = "8 x 10";
-"8.00x1.00\"" = "8.00x1.00\"";
-"8.00x2.00\"" = "8.00x2.00\"";
-"8.00x3.00\"" = "8.00x3.00\"";
-"8.00x4.00\"" = "8.00x4.00\"";
-"8.00x5.00\"" = "8.00x5.00\"";
-"8.00x6.00\"" = "8.00x6.00\"";
-"8.00x6.50\"" = "8.00x6.50\"";
+"8.00x1.00\"" = "8.00x1.00";
+"8.00x2.00\"" = "8.00x2.00";
+"8.00x3.00\"" = "8.00x3.00";
+"8.00x4.00\"" = "8.00x4.00";
+"8.00x5.00\"" = "8.00x5.00";
+"8.00x6.00\"" = "8.00x6.00";
+"8.00x6.50\"" = "8.00x6.50";
 "80" = "80";
 "80 mm/sec." = "80 mm/sec.";
 "85" = "85";
 "Add RSS Subscription" = "Add RSS Subscription";
 "Address" = "Address";
 "Administration" = "Administration";
+"Advanced Photo Paper" = "Advanced Photo Paper";
 "Alternate" = "Alternate";
 "Alternate Roll" = "Alternate Roll";
 "Aluminum" = "Aluminum";
 "Applicator" = "Applicator";
 "Archival Envelope" = "Archival Envelope";
 "Archival Fabric" = "Archival Fabric";
+"Archival Paper" = "Archival Paper";
+"Archival Photo Paper" = "Archival Photo Paper";
 "Attempt to set %s printer-state to bad value %d." = "Attempt to set %s printer-state to bad value %d.";
 "Attribute \"%s\" is in the wrong group." = "Attribute “%s” is in the wrong group.";
 "Attribute \"%s\" is the wrong value type." = "Attribute “%s” is the wrong value type.";
 "Bind (Reverse Portrait)" = "Bind (Reverse Portrait)";
 "Bond Envelope" = "Bond Envelope";
 "Bond Paper" = "Bond Paper";
+"Booklet" = "Booklet";
 "Booklet Maker" = "Booklet Maker";
 "Boolean expected for waiteof option \"%s\"." = "Boolean expected for waiteof option “%s”.";
 "Bottom" = "Bottom";
 "Control file sent successfully." = "Control file sent successfully.";
 "Copying print data." = "Copying print data.";
 "Cotton Envelope" = "Cotton Envelope";
+"Cotton Paper" = "Cotton Paper";
 "Cover" = "Cover";
 "Created" = "Created";
 "Credentials do not validate against site CA certificate." = "Credentials do not validate against site CA certificate.";
 "Every 8 Labels" = "Every 8 Labels";
 "Every 9 Labels" = "Every 9 Labels";
 "Every Label" = "Every Label";
+"Everyday Glossy Photo Paper" = "Everyday Glossy Photo Paper";
+"Everyday Matte Paper" = "Everyday Matte Paper";
 "Executive" = "Executive";
 "Expectation Failed" = "Expectation Failed";
 "Export Printers to Samba" = "Export Printers to Samba";
 "Expressions:" = "Expressions:";
+"Extra Heavyweight Paper" = "Extra Heavyweight Paper";
 "FAIL" = "FAIL";
 "Fabric" = "Fabric";
 "Face Down" = "Face Down";
 "Film" = "Film";
 "Fine Envelope" = "Fine Envelope";
 "Finished page %d." = "Finished page %d.";
-"Finishing" = "Finishing";
 "Flexo Base" = "Flexo Base";
 "Flexo Photo Polymer" = "Flexo Photo Polymer";
 "Flute" = "Flute";
 "Glass Opaque" = "Glass Opaque";
 "Glass Surfaced" = "Glass Surfaced";
 "Glass Textured" = "Glass Textured";
+"Glossy Brochure Paper" = "Glossy Brochure Paper";
 "Glossy Fabric" = "Glossy Fabric";
 "Glossy Labels" = "Glossy Labels";
 "Glossy Optical Disc" = "Glossy Optical Disc";
 "Half Z Fold" = "Half Z Fold";
 "Hanging Folder" = "Hanging Folder";
 "Hash buffer too small." = "Hash buffer too small.";
+"Heavyweight Coated Paper" = "Heavyweight Coated Paper";
 "Heavyweight Envelope" = "Heavyweight Envelope";
 "Heavyweight Paper" = "Heavyweight Paper";
 "Help file not in index." = "Help file not in index.";
 "Imaging Cylinder" = "Imaging Cylinder";
 "Inkjet Envelope" = "Inkjet Envelope";
 "Inkjet Labels" = "Inkjet Labels";
+"Inkjet Paper" = "Inkjet Paper";
 "Installable Options" = "Installable Options";
 "Installed" = "Installed";
 "IntelliBar Label Printer" = "IntelliBar Label Printer";
 "Main Roll" = "Main Roll";
 "Manual" = "Manual";
 "Manual Feed" = "Manual Feed";
+"Matte Brochure Paper" = "Matte Brochure Paper";
+"Matte Cover Paper" = "Matte Cover Paper";
 "Matte Fabric" = "Matte Fabric";
 "Matte Labels" = "Matte Labels";
 "Matte Optical Disc" = "Matte Optical Disc";
 "Metal Matte" = "Metal Matte";
 "Metal Satin" = "Metal Satin";
 "Metal Semi Gloss" = "Metal Semi Gloss";
+"Mid-Weight Paper" = "Mid-Weight Paper";
 "Middle" = "Middle";
 "Missing CloseGroup" = "Missing CloseGroup";
 "Missing PPD-Adobe-4.x header" = "Missing PPD-Adobe-4.x header";
 "Multi-Hole Punch (Reverse Landscape)" = "Multi-Hole Punch (Reverse Landscape)";
 "Multi-Hole Punch (Reverse Portrait)" = "Multi-Hole Punch (Reverse Portrait)";
 "Multipurpose" = "Multipurpose";
+"Multipurpose Paper" = "Multipurpose Paper";
 "My Mailbox" = "My Mailbox";
 "NULL PPD file pointer" = "NULL PPD file pointer";
 "Name OID uses indefinite length" = "Name OID uses indefinite length";
 "New credentials are older than stored credentials." = "New credentials are older than stored credentials.";
 "No" = "No";
 "No Content" = "No Content";
-"No Finishing" = "No Finishing";
+"No IPP attributes." = "No IPP attributes.";
 "No PPD name" = "No PPD name";
 "No VarBind SEQUENCE" = "No VarBind SEQUENCE";
 "No Windows printer drivers are installed." = "No Windows printer drivers are installed.";
 "No version number" = "No version number";
 "Non-continuous (Mark sensing)" = "Non-continuous (Mark sensing)";
 "Non-continuous (Web sensing)" = "Non-continuous (Web sensing)";
+"None" = "None";
 "Normal" = "Normal";
 "Not Found" = "Not Found";
 "Not Implemented" = "Not Implemented";
 "Note: this program only validates the DSC comments, not the PostScript itself." = "Note: this program only validates the DSC comments, not the PostScript itself.";
 "OK" = "OK";
 "Off (1-Sided)" = "Off (1-Sided)";
+"Office Recycled Paper" = "Office Recycled Paper";
 "Oki" = "Oki";
 "Online Help" = "Online Help";
 "Only local users can create a local printer." = "Only local users can create a local printer.";
 "Photo Film" = "Photo Film";
 "Photo Labels" = "Photo Labels";
 "Photo Paper" = "Photo Paper";
-"Photographic Archival" = "Photographic Archival";
+"Photo Paper Plus Glossy II" = "Photo Paper Plus Glossy II";
+"Photo Paper Pro Platinum" = "Photo Paper Pro Platinum";
 "Plain Envelope" = "Plain Envelope";
 "Plain Paper" = "Plain Paper";
 "Plastic" = "Plastic";
 "Postcard Long Edge" = "Postcard Long Edge";
 "Poster Fold" = "Poster Fold";
 "Pre Cut Tabs" = "Pre Cut Tabs";
+"Premium Inkjet Paper" = "Premium Inkjet Paper";
+"Premium Photo Glossy Paper" = "Premium Photo Glossy Paper";
+"Premium Presentation Matte Paper" = "Premium Presentation Matte Paper";
 "Preparing to print." = "Preparing to print.";
 "Preprinted Envelope" = "Preprinted Envelope";
 "Preprinted Paper" = "Preprinted Paper";
 "Printer Settings" = "Printer Settings";
 "Printer cannot print supplied content." = "Printer cannot print supplied content.";
 "Printer cannot print with supplied options." = "Printer cannot print with supplied options.";
+"Printer does not support required IPP attributes or document formats." = "Printer does not support required IPP attributes or document formats.";
 "Printer:" = "Printer:";
 "Printers" = "Printers";
 "Printing page %d, %u%% complete." = "Printing page %d, %u%% complete.";
 "Starting Banner" = "Starting Banner";
 "Starting page %d." = "Starting page %d.";
 "Statement" = "Statement";
-"Stationery" = "Stationery";
-"Stationery Archival" = "Stationery Archival";
-"Stationery Cotton" = "Stationery Cotton";
-"Stationery Heavyweight Coated" = "Stationery Heavyweight Coated";
-"Stationery Inkjet Paper" = "Stationery Inkjet Paper";
 "Subscription #%d does not exist." = "Subscription #%d does not exist.";
 "Substitutions:" = "Substitutions:";
 "Super A" = "Super A";
index dc41822..66c7699 100644 (file)
@@ -32,7 +32,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.4.6\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2012-09-29 11:21+0200\n"
 "Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -2701,6 +2701,9 @@ msgstr "Adreça"
 msgid "Administration"
 msgstr "Administració"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2725,6 +2728,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr ""
@@ -2958,6 +2967,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Paper de valors"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -3086,6 +3098,9 @@ msgstr "Es copien les dades d'impressió."
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3474,6 +3489,12 @@ msgstr "Cada 9 etiquetes"
 msgid "Every Label"
 msgstr "Cada etiqueta"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr "Executiu"
 
@@ -3486,6 +3507,9 @@ msgstr "Exportar les impressores al Samba"
 msgid "Expressions:"
 msgstr ""
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr "ERROR"
 
@@ -3549,9 +3573,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr "S'ha acabat la pàgina %d."
 
-msgid "Finishing"
-msgstr ""
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3603,6 +3624,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3645,6 +3669,9 @@ msgstr "Carpeta per penjar"
 msgid "Hash buffer too small."
 msgstr ""
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3771,6 +3798,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Opcions instal·lables"
 
@@ -4046,6 +4076,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr "Alimentació manual"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -4094,6 +4130,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4214,6 +4253,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr ""
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4241,7 +4283,7 @@ msgstr "No"
 msgid "No Content"
 msgstr "No hi ha contingut"
 
-msgid "No Finishing"
+msgid "No IPP attributes."
 msgstr ""
 
 msgid "No PPD name"
@@ -4349,6 +4391,9 @@ msgstr "Discontinu (sensible a les marques)"
 msgid "Non-continuous (Web sensing)"
 msgstr "Discontinu (Sensible al web)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Normal"
 
@@ -4385,6 +4430,9 @@ msgstr "D'acord"
 msgid "Off (1-Sided)"
 msgstr "Inactiu (Una cara)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4527,7 +4575,10 @@ msgstr "Etiquetes de fotografia"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4593,6 +4644,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr ""
 
@@ -4672,6 +4732,9 @@ msgstr "La impressora no pot imprimir el contingut subministrat."
 msgid "Printer cannot print with supplied options."
 msgstr ""
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Impressora:"
 
@@ -4989,21 +5052,6 @@ msgstr "S'està començant la pàgina %d."
 msgid "Statement"
 msgstr "Declaració"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr "La subscripció #%d no existeix."
index 326d357..a32a93b 100644 (file)
@@ -29,7 +29,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.6\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2012-09-14 10:26+0100\n"
 "Last-Translator: Jan Bartos <jan.bartos@madeta.cz>\n"
 "Language-Team: Czech\n"
@@ -2509,6 +2509,9 @@ msgstr "Adresa"
 msgid "Administration"
 msgstr "Administrace"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2533,6 +2536,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr ""
@@ -2765,6 +2774,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Kancelářský papír"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -2890,6 +2902,9 @@ msgstr ""
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3271,6 +3286,12 @@ msgstr "Každých 9 štítků"
 msgid "Every Label"
 msgstr "Každý štítek"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr ""
 
@@ -3283,6 +3304,9 @@ msgstr "Export tiskáren do Samby"
 msgid "Expressions:"
 msgstr ""
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr ""
 
@@ -3346,9 +3370,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr ""
 
-msgid "Finishing"
-msgstr ""
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3400,6 +3421,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3442,6 +3466,9 @@ msgstr "Závěsná složka"
 msgid "Hash buffer too small."
 msgstr ""
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3565,6 +3592,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Možnosti instalace"
 
@@ -3840,6 +3870,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr "Ruční podávání"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -3888,6 +3924,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4004,6 +4043,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr ""
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4031,7 +4073,7 @@ msgstr "Ne"
 msgid "No Content"
 msgstr "Žádný obsah"
 
-msgid "No Finishing"
+msgid "No IPP attributes."
 msgstr ""
 
 msgid "No PPD name"
@@ -4137,6 +4179,9 @@ msgstr "Není souvislý (Mark Sensing)"
 msgid "Non-continuous (Web sensing)"
 msgstr "Není souvislý (Web Sensing)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Normální"
 
@@ -4172,6 +4217,9 @@ msgstr "OK"
 msgid "Off (1-Sided)"
 msgstr "Vypnuto (jednostranný)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4314,7 +4362,10 @@ msgstr "Foto-samolepky"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4380,6 +4431,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr ""
 
@@ -4459,6 +4519,9 @@ msgstr ""
 msgid "Printer cannot print with supplied options."
 msgstr ""
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Tiskárna:"
 
@@ -4775,21 +4838,6 @@ msgstr ""
 msgid "Statement"
 msgstr "Prohlášení"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr ""
index fc5a151..378b406 100644 (file)
@@ -29,7 +29,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 2.0\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2016-09-17 18:45+0200\n"
 "Last-Translator: Joachim Schwender <joachim.schwender@web.de>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -2585,6 +2585,9 @@ msgstr "Adresse"
 msgid "Administration"
 msgstr "Verwaltung"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2609,6 +2612,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr "Versuch den %s Druckerstatus auf einen ungültigen %d Wert zu setzen."
@@ -2841,6 +2850,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Papier bündeln"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -2969,6 +2981,9 @@ msgstr "Kopiere Druckdaten."
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3351,6 +3366,12 @@ msgstr "Alle 9 Etiketten"
 msgid "Every Label"
 msgstr "Bei jedem Etikett"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr ""
 
@@ -3363,6 +3384,9 @@ msgstr "Drucker zu Samba exportieren"
 msgid "Expressions:"
 msgstr "Ausdrücke:"
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr "FEHLER"
 
@@ -3426,9 +3450,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr "Seite %d fertiggestellt."
 
-msgid "Finishing"
-msgstr "Endverarbeitung"
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3480,6 +3501,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3522,6 +3546,9 @@ msgstr "Hängeordner"
 msgid "Hash buffer too small."
 msgstr "Hash Puffer zu klein."
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr "Schwerer Umschlag"
 
@@ -3645,6 +3672,9 @@ msgstr "Tintenstrahl-Umschäge"
 msgid "Inkjet Labels"
 msgstr "Tintenstrahl-Etiketten"
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Installationsoptionen"
 
@@ -3921,6 +3951,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr "Manuelle Papierzufuhr"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -3969,6 +4005,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4085,6 +4124,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr "Mehrzweck"
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4112,8 +4154,8 @@ msgstr "Nein"
 msgid "No Content"
 msgstr "Kein Inhalt"
 
-msgid "No Finishing"
-msgstr "Keine Endverarbeitung"
+msgid "No IPP attributes."
+msgstr ""
 
 msgid "No PPD name"
 msgstr "Kein PPD Name"
@@ -4219,6 +4261,9 @@ msgstr "Nicht fortlaufend (Mark-Sensing)"
 msgid "Non-continuous (Web sensing)"
 msgstr "Nicht fortlaufend (Web-Sensing)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Normal"
 
@@ -4256,6 +4301,9 @@ msgstr "OK"
 msgid "Off (1-Sided)"
 msgstr "Aus (Einseitig)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4398,7 +4446,10 @@ msgstr "Foto-Etiketten"
 msgid "Photo Paper"
 msgstr "Fotopapier"
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4464,6 +4515,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr "Vorbereitung zum Druck."
 
@@ -4543,6 +4603,9 @@ msgstr "Drucker kann den Inhalt nicht drucken."
 msgid "Printer cannot print with supplied options."
 msgstr "Drucker kann mit den angegebenen Optionen nicht drucken."
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Drucker:"
 
@@ -4859,21 +4922,6 @@ msgstr "Beginne Seite %d."
 msgid "Statement"
 msgstr "US Statement"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr "Abonnement #%d existiert nicht."
@@ -6707,12 +6755,18 @@ msgstr "variable-bindings hat unbestimmte Länge"
 #~ msgid "File Folder "
 #~ msgstr "Datei-Verzeichnis "
 
+#~ msgid "Finishing"
+#~ msgstr "Endverarbeitung"
+
 #~ msgid "New Stylus Color Series"
 #~ msgstr "Neue Stylus Color Serie"
 
 #~ msgid "New Stylus Photo Series"
 #~ msgstr "Neue Stylus Photo Serie"
 
+#~ msgid "No Finishing"
+#~ msgstr "Keine Endverarbeitung"
+
 #~ msgid "Postcard Double "
 #~ msgstr "Doppelpostkarte"
 
index ddf9987..e991776 100644 (file)
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 2.2\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2016-06-26 21:17+0100\n"
 "Last-Translator: Juan Pablo González Riopedre <jpgriopedre@yahoo.es>\n"
 "Language-Team: Spanish\n"
@@ -2776,6 +2776,9 @@ msgstr "Dirección"
 msgid "Administration"
 msgstr "Administración"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr "Alternativo"
 
@@ -2800,6 +2803,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr ""
@@ -3034,6 +3043,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Papel de cartas"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr "Fabricante de folleto"
 
@@ -3161,6 +3173,9 @@ msgstr "Copiando datos de impresión."
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr "Carátula"
 
@@ -3548,6 +3563,12 @@ msgstr "Cada 9 etiquetas"
 msgid "Every Label"
 msgstr "Cada etiqueta"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr "Ejecutivo"
 
@@ -3560,6 +3581,9 @@ msgstr "Exportar impresoras a Samba"
 msgid "Expressions:"
 msgstr "Expresiones:"
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr "FALLO"
 
@@ -3625,9 +3649,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr "Acabada la página %d."
 
-msgid "Finishing"
-msgstr "Terminando"
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3679,6 +3700,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3721,6 +3745,9 @@ msgstr "Carpeta colgante"
 msgid "Hash buffer too small."
 msgstr "Memoria temporal hash demasiado pequeña."
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3844,6 +3871,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Opciones instalables"
 
@@ -4119,6 +4149,12 @@ msgstr "Manual"
 msgid "Manual Feed"
 msgstr "Alimentación manual"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -4167,6 +4203,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr "Medio"
 
@@ -4287,6 +4326,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr "Multipropósito"
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4314,8 +4356,8 @@ msgstr "No"
 msgid "No Content"
 msgstr "No hay contenido"
 
-msgid "No Finishing"
-msgstr "Sin terminar"
+msgid "No IPP attributes."
+msgstr ""
 
 msgid "No PPD name"
 msgstr "No hay nombre de PPD"
@@ -4422,6 +4464,9 @@ msgstr "No continuo (sensible a señal)"
 msgid "Non-continuous (Web sensing)"
 msgstr "No continuo (sensible a web)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Normal"
 
@@ -4458,6 +4503,9 @@ msgstr "OK"
 msgid "Off (1-Sided)"
 msgstr "Desactivado (1 cara)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4600,7 +4648,10 @@ msgstr "Foto pequeña"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4666,6 +4717,15 @@ msgstr "Póster plegado"
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr "Preparando la impresión."
 
@@ -4745,6 +4805,9 @@ msgstr "La impresora no puede imprimir el contenido suministrado."
 msgid "Printer cannot print with supplied options."
 msgstr "La impresora no puede imprimir con las opciones suministradas."
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Impresora:"
 
@@ -5061,21 +5124,6 @@ msgstr "Iniciando página %d."
 msgid "Statement"
 msgstr "Declaración"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr "Subscripción #%d no existe."
@@ -5924,8 +5972,8 @@ msgstr "Uso: cupstestdsc [opciones] nombre_archivo.ps [... nombre_archivo.ps]"
 msgid ""
 "Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
 msgstr ""
-"Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN.ppd"
-"[.gz]]"
+"Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN."
+"ppd[.gz]]"
 
 msgid ""
 "Usage: ippfind [options] regtype[,subtype][.domain.] ... [expression]\n"
@@ -6947,6 +6995,9 @@ msgstr "variable-bindings usa una longitud indefinida"
 #~ msgid "CD/DVD/Bluray"
 #~ msgstr "CD/DVD/Bluray"
 
+#~ msgid "Finishing"
+#~ msgstr "Terminando"
+
 #~ msgid "Glossy Photo"
 #~ msgstr "Foto brillante"
 
@@ -6962,6 +7013,9 @@ msgstr "variable-bindings usa una longitud indefinida"
 #~ msgid "Matte Photo"
 #~ msgstr "Foto mate"
 
+#~ msgid "No Finishing"
+#~ msgstr "Sin terminar"
+
 #~ msgid "Satin Photo"
 #~ msgstr "Foto satinada"
 
index 7aa09a1..fd4a9e3 100644 (file)
@@ -29,7 +29,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.6\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2012-12-12 11:12+0100\n"
 "Last-Translator: denis meramdjougoma <dcmeram@libertysurf.fr>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -2509,6 +2509,9 @@ msgstr "Adresse"
 msgid "Administration"
 msgstr "Administration"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2533,6 +2536,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr ""
@@ -2765,6 +2774,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Papier pour titres"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -2890,6 +2902,9 @@ msgstr ""
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3268,6 +3283,12 @@ msgstr "Toutes les 9 étiquettes"
 msgid "Every Label"
 msgstr "Chaque étiquette"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr ""
 
@@ -3280,6 +3301,9 @@ msgstr "Exporter les imprimantes vers SAMBA"
 msgid "Expressions:"
 msgstr ""
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr ""
 
@@ -3343,9 +3367,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr ""
 
-msgid "Finishing"
-msgstr ""
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3397,6 +3418,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3439,6 +3463,9 @@ msgstr "Dossier suspendu"
 msgid "Hash buffer too small."
 msgstr ""
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3562,6 +3589,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Options installables"
 
@@ -3837,6 +3867,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr ""
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -3885,6 +3921,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4001,6 +4040,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr ""
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4028,7 +4070,7 @@ msgstr "Non"
 msgid "No Content"
 msgstr "Aucun contenu"
 
-msgid "No Finishing"
+msgid "No IPP attributes."
 msgstr ""
 
 msgid "No PPD name"
@@ -4134,6 +4176,9 @@ msgstr "Non continu (détection de marque)"
 msgid "Non-continuous (Web sensing)"
 msgstr "Non continu (détection Web)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Normal"
 
@@ -4169,6 +4214,9 @@ msgstr "OK"
 msgid "Off (1-Sided)"
 msgstr "Désactivé (recto)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4311,7 +4359,10 @@ msgstr "Étiquettes photo"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4377,6 +4428,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr ""
 
@@ -4456,6 +4516,9 @@ msgstr ""
 msgid "Printer cannot print with supplied options."
 msgstr ""
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Imprimante :"
 
@@ -4772,21 +4835,6 @@ msgstr ""
 msgid "Statement"
 msgstr "Déclaration"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr ""
index aed02ba..ea17c54 100644 (file)
@@ -29,7 +29,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.6\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2013-07-14 12:00+0200\n"
 "Last-Translator: Giovanni Scafora <giovanni@archlinux.org>\n"
 "Language-Team: Arch Linux Italian Team <giovanni@archlinux.org>\n"
@@ -2776,6 +2776,9 @@ msgstr "Indirizzo"
 msgid "Administration"
 msgstr "Amministrazione"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2800,6 +2803,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr "Tentativo di impostare %s printer-state al valore non valido %d."
@@ -3032,6 +3041,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Carta per scrivere"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -3160,6 +3172,9 @@ msgstr "Copia dei dati di stampa in corso."
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3548,6 +3563,12 @@ msgstr "Ogni 9 etichette"
 msgid "Every Label"
 msgstr "Ogni etichetta"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr "Esecutivo"
 
@@ -3560,6 +3581,9 @@ msgstr "Esporta le stampanti per Samba"
 msgid "Expressions:"
 msgstr "Espressioni:"
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr "OPERAZIONE NON RIUSCITA CORRETTAMENTE"
 
@@ -3625,9 +3649,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr "Finito pagina %d."
 
-msgid "Finishing"
-msgstr ""
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3679,6 +3700,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3721,6 +3745,9 @@ msgstr "Directory appesa"
 msgid "Hash buffer too small."
 msgstr ""
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3844,6 +3871,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Opzioni installabili"
 
@@ -4119,6 +4149,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr "Alimentazione manuale"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -4167,6 +4203,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4287,6 +4326,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr ""
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4314,7 +4356,7 @@ msgstr "No"
 msgid "No Content"
 msgstr "Nessun contenuto"
 
-msgid "No Finishing"
+msgid "No IPP attributes."
 msgstr ""
 
 msgid "No PPD name"
@@ -4422,6 +4464,9 @@ msgstr "Non-continuous (Mark sensing)"
 msgid "Non-continuous (Web sensing)"
 msgstr "Non-continuous (Web sensing)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Normale"
 
@@ -4459,6 +4504,9 @@ msgstr "OK"
 msgid "Off (1-Sided)"
 msgstr "Off (1-Sided)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4601,7 +4649,10 @@ msgstr "Etichette delle foto"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4667,6 +4718,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr "Preparazione per la stampa."
 
@@ -4746,6 +4806,9 @@ msgstr "La stampante non può stampare il contenuto fornito."
 msgid "Printer cannot print with supplied options."
 msgstr "La stampante non può stampare con le opzioni fornite."
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Stampante:"
 
@@ -5062,21 +5125,6 @@ msgstr "Pagina iniziale %d."
 msgid "Statement"
 msgstr "Rapporto"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr "La sottoscrizione #%d non esiste."
index d71ab8f..97efa92 100644 (file)
@@ -28,7 +28,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 2.0\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2014-11-15 19:27+0900\n"
 "Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
 "Language-Team: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
@@ -2735,6 +2735,9 @@ msgstr "アドレス"
 msgid "Administration"
 msgstr "管理"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2759,6 +2762,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr "%s printer-state に 不正な値 %d を設定しようとしています。"
@@ -2991,6 +3000,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "ボンド紙"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -3119,6 +3131,9 @@ msgstr "印刷データをコピーしています。"
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3509,6 +3524,12 @@ msgstr "9 ラベルごと"
 msgid "Every Label"
 msgstr "すべてのラベル"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr "エグゼクティブ"
 
@@ -3521,6 +3542,9 @@ msgstr "Samba へプリンターをエクスポート"
 msgid "Expressions:"
 msgstr "式:"
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr "失敗"
 
@@ -3588,9 +3612,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr "ページ %d を終了。"
 
-msgid "Finishing"
-msgstr ""
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3642,6 +3663,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3684,6 +3708,9 @@ msgstr "Hanging Folder"
 msgid "Hash buffer too small."
 msgstr ""
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3807,6 +3834,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "インストール可能オプション"
 
@@ -4082,6 +4112,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr "手差し"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -4130,6 +4166,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4250,6 +4289,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr ""
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4277,7 +4319,7 @@ msgstr "いいえ"
 msgid "No Content"
 msgstr "中身がありません"
 
-msgid "No Finishing"
+msgid "No IPP attributes."
 msgstr ""
 
 msgid "No PPD name"
@@ -4383,6 +4425,9 @@ msgstr "非連続です (Mark sensing)"
 msgid "Non-continuous (Web sensing)"
 msgstr "非連続です (Web sensing)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "標準"
 
@@ -4420,6 +4465,9 @@ msgstr "OK"
 msgid "Off (1-Sided)"
 msgstr "Off (片面)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4562,7 +4610,10 @@ msgstr "写真ラベル"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4628,6 +4679,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr "印刷準備中です。"
 
@@ -4707,6 +4767,9 @@ msgstr "プリンターは受信した内容を印刷できませんでした。
 msgid "Printer cannot print with supplied options."
 msgstr "指定されたオプションではプリンターは印刷できません。"
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "プリンター:"
 
@@ -5023,21 +5086,6 @@ msgstr "ページ %d を開始しています。"
 msgid "Statement"
 msgstr "記述"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr "サブスクリプション番号 %d は存在しません。"
index 1327c5c..da42564 100644 (file)
@@ -40,7 +40,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 2.1.2\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2016-01-31 16:45-0200\n"
 "Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <traducao-cups-pt-br@googlegroups.com>\n"
@@ -2776,6 +2776,9 @@ msgstr "Endereço"
 msgid "Administration"
 msgstr "Administração"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2800,6 +2803,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr ""
@@ -3033,6 +3042,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Papel autocolante"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -3161,6 +3173,9 @@ msgstr "Copiando dados de impressão."
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3548,6 +3563,12 @@ msgstr "A cada 9 etiquetas"
 msgid "Every Label"
 msgstr "A cada etiqueta"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr "Executivo"
 
@@ -3560,6 +3581,9 @@ msgstr "Exportar impressoras para o Samba"
 msgid "Expressions:"
 msgstr "Expressões:"
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr "FALHA"
 
@@ -3625,9 +3649,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr "Terminou página %d."
 
-msgid "Finishing"
-msgstr ""
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3679,6 +3700,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3721,6 +3745,9 @@ msgstr "Pasta suspensa"
 msgid "Hash buffer too small."
 msgstr ""
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3844,6 +3871,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Opções instaláveis"
 
@@ -4119,6 +4149,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr "Alimentação manual"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -4167,6 +4203,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4287,6 +4326,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr ""
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4314,7 +4356,7 @@ msgstr "Não"
 msgid "No Content"
 msgstr "Nenhum conteúdo"
 
-msgid "No Finishing"
+msgid "No IPP attributes."
 msgstr ""
 
 msgid "No PPD name"
@@ -4422,6 +4464,9 @@ msgstr "Não-contíguo (Mark sensing)"
 msgid "Non-continuous (Web sensing)"
 msgstr "Não-contíguo (Web sensing)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Normal"
 
@@ -4458,6 +4503,9 @@ msgstr "OK"
 msgid "Off (1-Sided)"
 msgstr "Off (1 lado)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4601,7 +4649,10 @@ msgstr "Foto pequena"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4667,6 +4718,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr "Preparando para imprimir."
 
@@ -4746,6 +4806,9 @@ msgstr "Impressora não consegue imprimir o conteúdo fornecido."
 msgid "Printer cannot print with supplied options."
 msgstr "Impressora não consegue imprimir os opções fornecidas."
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Impressora:"
 
@@ -5062,21 +5125,6 @@ msgstr "Iniciando página %d."
 msgid "Statement"
 msgstr "Declaração"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr "Inscrição #%d não existe."
index 95977ef..68568e3 100644 (file)
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 2.0\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2017-01-03 16:43-0500\n"
+"POT-Creation-Date: 2017-03-11 10:02-0500\n"
 "PO-Revision-Date: 2015-01-28 12:00-0800\n"
 "Last-Translator: Aleksandr Proklov\n"
 "Language-Team: PuppyRus Linux Team\n"
@@ -2709,6 +2709,9 @@ msgstr "Адрес"
 msgid "Administration"
 msgstr "Администрирование"
 
+msgid "Advanced Photo Paper"
+msgstr ""
+
 msgid "Alternate"
 msgstr ""
 
@@ -2733,6 +2736,12 @@ msgstr ""
 msgid "Archival Fabric"
 msgstr ""
 
+msgid "Archival Paper"
+msgstr ""
+
+msgid "Archival Photo Paper"
+msgstr ""
+
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d."
 msgstr "Попытка установить %s printer-state на неверное значение %d"
@@ -2965,6 +2974,9 @@ msgstr ""
 msgid "Bond Paper"
 msgstr "Документная бумага"
 
+msgid "Booklet"
+msgstr ""
+
 msgid "Booklet Maker"
 msgstr ""
 
@@ -3093,6 +3105,9 @@ msgstr "Копирование данных печати."
 msgid "Cotton Envelope"
 msgstr ""
 
+msgid "Cotton Paper"
+msgstr ""
+
 msgid "Cover"
 msgstr ""
 
@@ -3474,6 +3489,12 @@ msgstr "Каждые 9 этикеток"
 msgid "Every Label"
 msgstr "Каждая этикетка"
 
+msgid "Everyday Glossy Photo Paper"
+msgstr ""
+
+msgid "Everyday Matte Paper"
+msgstr ""
+
 msgid "Executive"
 msgstr "Executive"
 
@@ -3486,6 +3507,9 @@ msgstr "Экспортировать принтеры в Samba"
 msgid "Expressions:"
 msgstr "Выражение:"
 
+msgid "Extra Heavyweight Paper"
+msgstr ""
+
 msgid "FAIL"
 msgstr "FAIL"
 
@@ -3551,9 +3575,6 @@ msgstr ""
 msgid "Finished page %d."
 msgstr "Последняя страница %d."
 
-msgid "Finishing"
-msgstr ""
-
 msgid "Flexo Base"
 msgstr ""
 
@@ -3605,6 +3626,9 @@ msgstr ""
 msgid "Glass Textured"
 msgstr ""
 
+msgid "Glossy Brochure Paper"
+msgstr ""
+
 msgid "Glossy Fabric"
 msgstr ""
 
@@ -3647,6 +3671,9 @@ msgstr "Папка подвесного хранения"
 msgid "Hash buffer too small."
 msgstr ""
 
+msgid "Heavyweight Coated Paper"
+msgstr ""
+
 msgid "Heavyweight Envelope"
 msgstr ""
 
@@ -3770,6 +3797,9 @@ msgstr ""
 msgid "Inkjet Labels"
 msgstr ""
 
+msgid "Inkjet Paper"
+msgstr ""
+
 msgid "Installable Options"
 msgstr "Параметры, разрешенные к установке"
 
@@ -4045,6 +4075,12 @@ msgstr ""
 msgid "Manual Feed"
 msgstr "Ручная подача"
 
+msgid "Matte Brochure Paper"
+msgstr ""
+
+msgid "Matte Cover Paper"
+msgstr ""
+
 msgid "Matte Fabric"
 msgstr ""
 
@@ -4093,6 +4129,9 @@ msgstr ""
 msgid "Metal Semi Gloss"
 msgstr ""
 
+msgid "Mid-Weight Paper"
+msgstr ""
+
 msgid "Middle"
 msgstr ""
 
@@ -4213,6 +4252,9 @@ msgstr ""
 msgid "Multipurpose"
 msgstr ""
 
+msgid "Multipurpose Paper"
+msgstr ""
+
 msgid "My Mailbox"
 msgstr ""
 
@@ -4240,7 +4282,7 @@ msgstr "Нет"
 msgid "No Content"
 msgstr "Нет содержимого"
 
-msgid "No Finishing"
+msgid "No IPP attributes."
 msgstr ""
 
 msgid "No PPD name"
@@ -4347,6 +4389,9 @@ msgstr "С прерыванием (Mark sensing)"
 msgid "Non-continuous (Web sensing)"
 msgstr "С прерыванием (Web sensing)"
 
+msgid "None"
+msgstr ""
+
 msgid "Normal"
 msgstr "Нормальный"
 
@@ -4384,6 +4429,9 @@ msgstr "ОК"
 msgid "Off (1-Sided)"
 msgstr "Выкл. (1-сторонняя печать)"
 
+msgid "Office Recycled Paper"
+msgstr ""
+
 msgid "Oki"
 msgstr "Oki"
 
@@ -4526,7 +4574,10 @@ msgstr "Фотоэтикетки"
 msgid "Photo Paper"
 msgstr ""
 
-msgid "Photographic Archival"
+msgid "Photo Paper Plus Glossy II"
+msgstr ""
+
+msgid "Photo Paper Pro Platinum"
 msgstr ""
 
 msgid "Plain Envelope"
@@ -4592,6 +4643,15 @@ msgstr ""
 msgid "Pre Cut Tabs"
 msgstr ""
 
+msgid "Premium Inkjet Paper"
+msgstr ""
+
+msgid "Premium Photo Glossy Paper"
+msgstr ""
+
+msgid "Premium Presentation Matte Paper"
+msgstr ""
+
 msgid "Preparing to print."
 msgstr "Подготовка к печати."
 
@@ -4671,6 +4731,9 @@ msgstr "Принтер не может распечатать содержимо
 msgid "Printer cannot print with supplied options."
 msgstr "Принтер не может печатать с данными параметрами."
 
+msgid "Printer does not support required IPP attributes or document formats."
+msgstr ""
+
 msgid "Printer:"
 msgstr "Принтер:"
 
@@ -4988,21 +5051,6 @@ msgstr "Главная страница %d."
 msgid "Statement"
 msgstr "Оператор"
 
-msgid "Stationery"
-msgstr ""
-
-msgid "Stationery Archival"
-msgstr ""
-
-msgid "Stationery Cotton"
-msgstr ""
-
-msgid "Stationery Heavyweight Coated"
-msgstr ""
-
-msgid "Stationery Inkjet Paper"
-msgstr ""
-
 #, c-format
 msgid "Subscription #%d does not exist."
 msgstr "Подписка #%d не существует."
index 1edf146..4638275 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Convert a GNU gettext .po file to an Apple .strings file.
  *
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  *
  * These coded instructions, statements, and computer programs are the
  * property of Apple Inc. and are protected by Federal copyright
@@ -323,30 +323,41 @@ normalize_string(const char *idstr,       /* I - msgid string */
       *bufptr++ = (char)0xA6;
       idstr += 2;
     }
-    else if (!html && *idstr == '\\' && idstr[1] == '\"' && (quote || strchr(idstr + 2, '\"') != NULL))
+    else if (!html && *idstr == '\\' && idstr[1] == '\"')
     {
       if (quote)
       {
        /*
-        * Convert \" to Unicode right (curley) double quote.
+        * Convert second \" to Unicode right (curley) double quote.
         */
 
        *bufptr++ = (char)0xE2;
        *bufptr++ = (char)0x80;
        *bufptr++ = (char)0x9D;
+       quote     = 0;
       }
-      else
+      else if (strchr(idstr + 2, '\"') != NULL)
       {
        /*
-        * Convert \" to Unicode left (curley) double quote.
+        * Convert first \" to Unicode left (curley) double quote.
         */
 
        *bufptr++ = (char)0xE2;
        *bufptr++ = (char)0x80;
        *bufptr++ = (char)0x9C;
+       quote     = 1;
+      }
+      else
+      {
+       /*
+        * Convert lone \" to Unicode double prime.
+        */
+
+        *bufptr++ = (char)0xE2;
+        *bufptr++ = (char)0x80;
+        *bufptr++ = (char)0xB3;
       }
 
-      quote = !quote;
       idstr ++;
     }
     else
index 8632de0..bf7ba5f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Man page to HTML conversion program.
  *
- * Copyright 2007-2010, 2014 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 2004-2006 by Easy Software Products.
  *
  * These coded instructions, statements, and computer programs are the
@@ -1153,8 +1153,11 @@ html_fputs(const char *s,                /* I  - String */
       }
       else
       {
-        if (*s != '\\' && *s == '\"' && *s == '\'' && *s == '-')
+        if (*s != '\\' && *s != '\"' && *s != '\'' && *s != '-')
+        {
           fprintf(stderr, "mantohtml: Unrecognized escape \"\\%c\" ignored.\n", *s);
+          html_putc('\\', fp);
+        }
 
         html_putc(*s++, fp);
       }
index 2afed0e..76fd06b 100644 (file)
 
 Summary: CUPS
 Name: cups
-Version: 2.2.2
+Version: 2.2.3
 Release: 0
 Epoch: 1
 License: GPL
 Group: System Environment/Daemons
-Source: https://github.com/apple/cups/releases/download/v2.2.2/cups-2.2.2-source.tar.gz
+Source: https://github.com/apple/cups/releases/download/v2.2.3/cups-2.2.3-source.tar.gz
 Url: http://www.cups.org
 Packager: Anonymous <anonymous@example.com>
 Vendor: Example Corp
index 50e00be..f27decd 100644 (file)
@@ -2349,17 +2349,15 @@ cupsdSendHeader(
 
     if (auth_type == CUPSD_AUTH_BASIC)
       strlcpy(auth_str, "Basic realm=\"CUPS\"", sizeof(auth_str));
-#ifdef HAVE_GSSAPI
     else if (auth_type == CUPSD_AUTH_NEGOTIATE)
     {
-#  ifdef AF_LOCAL
+#ifdef AF_LOCAL
       if (httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL)
         strlcpy(auth_str, "Basic realm=\"CUPS\"", sizeof(auth_str));
       else
-#  endif /* AF_LOCAL */
+#endif /* AF_LOCAL */
       strlcpy(auth_str, "Negotiate", sizeof(auth_str));
     }
-#endif /* HAVE_GSSAPI */
 
     if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE &&
         !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
index 3cde8bd..36f043f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Configuration routines for the CUPS scheduler.
  *
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -2233,7 +2233,6 @@ parse_aaa(cupsd_location_t *loc,  /* I - Location */
       if (loc->level == CUPSD_AUTH_ANON)
        loc->level = CUPSD_AUTH_USER;
     }
-#ifdef HAVE_GSSAPI
     else if (!_cups_strcasecmp(value, "negotiate"))
     {
       loc->type = CUPSD_AUTH_NEGOTIATE;
@@ -2241,7 +2240,6 @@ parse_aaa(cupsd_location_t *loc,  /* I - Location */
       if (loc->level == CUPSD_AUTH_ANON)
        loc->level = CUPSD_AUTH_USER;
     }
-#endif /* HAVE_GSSAPI */
     else
     {
       cupsdLogMessage(CUPSD_LOG_WARN,
@@ -3175,10 +3173,8 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
        default_auth_type = CUPSD_AUTH_NONE;
       else if (!_cups_strcasecmp(value, "basic"))
        default_auth_type = CUPSD_AUTH_BASIC;
-#ifdef HAVE_GSSAPI
       else if (!_cups_strcasecmp(value, "negotiate"))
         default_auth_type = CUPSD_AUTH_NEGOTIATE;
-#endif /* HAVE_GSSAPI */
       else if (!_cups_strcasecmp(value, "auto"))
         default_auth_type = CUPSD_AUTH_AUTO;
       else
index d7d0171..9030911 100644 (file)
@@ -2123,7 +2123,7 @@ load_ppd(const char  *filename,           /* I - Real filename */
 
       if (is_direct && !is_storage)
         type = PPD_TYPE_OBJECT_DIRECT;
-      if (!is_direct && is_storage)
+      else if (!is_direct && is_storage)
         type = PPD_TYPE_OBJECT_STORAGE;
       else
         type = PPD_TYPE_OBJECT_ANY;
index 1b12fe5..7824015 100644 (file)
@@ -456,6 +456,7 @@ cupsdCleanJobs(void)
       else if (job->file_time && job->file_time <= curtime)
       {
         cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing document files.");
+        cupsdLogJob(job, CUPSD_LOG_DEBUG2, "curtime=%ld, job->file_time=%ld", (long)curtime, (long)job->file_time);
         remove_job_files(job);
 
         cupsdMarkDirty(CUPSD_DIRTY_JOBS);
@@ -1743,6 +1744,8 @@ cupsdLoadJob(cupsd_job_t *job)            /* I - Job */
     else
       job->file_time = INT_MAX;
 
+    cupsdLogJob(job, CUPSD_LOG_DEBUG2, "cupsdLoadJob: job->file_time=%ld, time-at-completed=%ld, JobFiles=%d", (long)job->file_time, (long)attr->values[0].integer, JobFiles);
+
     if (job->file_time < JobHistoryUpdate || !JobHistoryUpdate)
       JobHistoryUpdate = job->file_time;
 
@@ -2742,7 +2745,7 @@ cupsdSetJobState(
          job->dirty = 1;
          cupsdMarkDirty(CUPSD_DIRTY_JOBS);
        }
-       else if (!job->printer)
+       else if (!JobHistory && !job->printer)
        {
         /*
          * Delete the job immediately if not actively printing...
@@ -2876,12 +2879,14 @@ cupsdUpdateJobs(void)
       else
        job->file_time = INT_MAX;
 
+      cupsdLogJob(job, CUPSD_LOG_DEBUG2, "cupsdUpdateJobs: job->file_time=%ld, time-at-completed=%ld, JobFiles=%d", (long)job->file_time, (long)attr->values[0].integer, JobFiles);
+
       if (job->file_time < JobHistoryUpdate || !JobHistoryUpdate)
        JobHistoryUpdate = job->file_time;
     }
   }
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdUpdateAllJobs: JobHistoryUpdate=%ld",
+  cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdUpdateJobs: JobHistoryUpdate=%ld",
                   (long)JobHistoryUpdate);
 }
 
@@ -4601,7 +4606,7 @@ set_time(cupsd_job_t *job,                /* I - Job to update */
       JobHistoryUpdate = job->history_time;
 
     if (JobFiles < INT_MAX && attr)
-      job->file_time = attr->values[0].integer + JobFiles;
+      job->file_time = curtime + JobFiles;
     else
       job->file_time = INT_MAX;
 
index e18ffb0..bdb27a6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Main loop for the CUPS scheduler.
  *
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -889,7 +889,7 @@ main(int  argc,                             /* I - Number of command-line args */
     * Write dirty config/state files...
     */
 
-    if (DirtyCleanTime && current_time >= DirtyCleanTime)
+    if (DirtyCleanTime && current_time >= DirtyCleanTime && cupsArrayCount(Clients) == 0)
       cupsdCleanDirty();
 
 #ifdef __APPLE__
index 63ca80d..e17d331 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Printer routines for the CUPS scheduler.
  *
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -3802,7 +3802,7 @@ load_ppd(cupsd_printer_t *p)              /* I - Printer */
   ipp_attribute_t *attr;               /* Attribute data */
   _ipp_value_t *val;                   /* Attribute value */
   int          num_finishings,         /* Number of finishings */
-               finishings[5];          /* finishings-supported values */
+               finishings[100];        /* finishings-supported values */
   int          num_qualities,          /* Number of print-quality values */
                qualities[3];           /* print-quality values */
   int          num_margins,            /* Number of media-*-margin-supported values */
@@ -4584,16 +4584,74 @@ load_ppd(cupsd_printer_t *p)            /* I - Printer */
     if (ppdFindOption(ppd, "Collate") != NULL)
       p->type |= CUPS_PRINTER_COLLATE;
 
-    if (ppdFindOption(ppd, "StapleLocation") != NULL)
+    if (p->pc && p->pc->finishings)
     {
-      p->type |= CUPS_PRINTER_STAPLE;
-      finishings[num_finishings++] = IPP_FINISHINGS_STAPLE;
-    }
+      _pwg_finishings_t        *fin;           /* Current finishing value */
 
-    if (ppdFindOption(ppd, "BindEdge") != NULL)
-    {
-      p->type |= CUPS_PRINTER_BIND;
-      finishings[num_finishings++] = IPP_FINISHINGS_BIND;
+      for (fin = (_pwg_finishings_t *)cupsArrayFirst(p->pc->finishings); fin; fin = (_pwg_finishings_t *)cupsArrayNext(p->pc->finishings))
+      {
+        if (num_finishings < (int)(sizeof(finishings) / sizeof(finishings[0])))
+          finishings[num_finishings++] = fin->value;
+
+        switch (fin->value)
+        {
+          case IPP_FINISHINGS_BIND :
+          case IPP_FINISHINGS_BIND_LEFT :
+          case IPP_FINISHINGS_BIND_TOP :
+          case IPP_FINISHINGS_BIND_RIGHT :
+          case IPP_FINISHINGS_BIND_BOTTOM :
+          case IPP_FINISHINGS_EDGE_STITCH :
+          case IPP_FINISHINGS_EDGE_STITCH_LEFT :
+          case IPP_FINISHINGS_EDGE_STITCH_TOP :
+          case IPP_FINISHINGS_EDGE_STITCH_RIGHT :
+          case IPP_FINISHINGS_EDGE_STITCH_BOTTOM :
+              p->type |= CUPS_PRINTER_BIND;
+              break;
+
+          case IPP_FINISHINGS_COVER :
+              p->type |= CUPS_PRINTER_COVER;
+              break;
+
+          case IPP_FINISHINGS_PUNCH :
+          case IPP_FINISHINGS_PUNCH_TOP_LEFT :
+          case IPP_FINISHINGS_PUNCH_BOTTOM_LEFT :
+          case IPP_FINISHINGS_PUNCH_TOP_RIGHT :
+          case IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT :
+          case IPP_FINISHINGS_PUNCH_DUAL_LEFT :
+          case IPP_FINISHINGS_PUNCH_DUAL_TOP :
+          case IPP_FINISHINGS_PUNCH_DUAL_RIGHT :
+          case IPP_FINISHINGS_PUNCH_DUAL_BOTTOM :
+          case IPP_FINISHINGS_PUNCH_TRIPLE_LEFT :
+          case IPP_FINISHINGS_PUNCH_TRIPLE_TOP :
+          case IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT :
+          case IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM :
+          case IPP_FINISHINGS_PUNCH_QUAD_LEFT :
+          case IPP_FINISHINGS_PUNCH_QUAD_TOP :
+          case IPP_FINISHINGS_PUNCH_QUAD_RIGHT :
+          case IPP_FINISHINGS_PUNCH_QUAD_BOTTOM :
+              p->type |= CUPS_PRINTER_PUNCH;
+              break;
+
+          case IPP_FINISHINGS_STAPLE :
+          case IPP_FINISHINGS_STAPLE_TOP_LEFT :
+          case IPP_FINISHINGS_STAPLE_BOTTOM_LEFT :
+          case IPP_FINISHINGS_STAPLE_TOP_RIGHT :
+          case IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT :
+          case IPP_FINISHINGS_STAPLE_DUAL_LEFT :
+          case IPP_FINISHINGS_STAPLE_DUAL_TOP :
+          case IPP_FINISHINGS_STAPLE_DUAL_RIGHT :
+          case IPP_FINISHINGS_STAPLE_DUAL_BOTTOM :
+          case IPP_FINISHINGS_STAPLE_TRIPLE_LEFT :
+          case IPP_FINISHINGS_STAPLE_TRIPLE_TOP :
+          case IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT :
+          case IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM :
+              p->type |= CUPS_PRINTER_STAPLE;
+              break;
+
+          default :
+              break;
+        }
+      }
     }
 
     for (i = 0; i < ppd->num_sizes; i ++)
@@ -4715,13 +4773,6 @@ load_ppd(cupsd_printer_t *p)             /* I - Printer */
     }
 
    /*
-    * 3D printer support...
-    */
-
-    if (ppdFindAttr(ppd, "cups3D", NULL))
-      p->type |= CUPS_PRINTER_3D;
-
-   /*
     * Show current and available port monitors for this printer...
     */
 
index cf67e74..27e8010 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Process management routines for the CUPS scheduler.
  *
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2017 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -874,7 +874,7 @@ cupsd_requote(char       *dst,              /* I - Destination buffer */
     if (ch == '/' && !*src)
       break;                           /* Don't add trailing slash */
 
-    if (strchr(".?*()[]^$\\", ch))
+    if (strchr(".?*()[]^$\\\"", ch))
       *dstptr++ = '\\';
 
     *dstptr++ = (char)ch;
index 51226ab..9f2c522 100644 (file)
@@ -2,4 +2,4 @@
 {?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Beendete Aufträge anzeigen"></FORM>}
 {?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Alle Aufträge anzeigen"></FORM>}
 
-<P ALIGN="CENTER">{total=0?Keine Aufträge:Zeige {#job_id} von {total} {?which_jobs=?aktiven:{which_jobs=all?:beendeten}} {total=1?Auftrag:Aufträgen}}.</P>
+<P ALIGN="CENTER">{?which_jobs=?Jobs listed in print order; held jobs appear first.:{which_jobs=Jobs listed in ascending order.?:Jobs listed in descending order.}}</P>
index abb9914..d7adfd9 100644 (file)
@@ -2,4 +2,4 @@
 {?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Mostrar trabajos completados"></FORM>}
 {?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Mostrar todos los trabajos"></FORM>}
 
-<P ALIGN="CENTER">{total=0?No hay trabajos:Mostrando {#job_id} de {total} trabajo{total=1?:s}{?which_jobs=? activo{total=1?:s}:{which_jobs=all?: completado{total=1?:s}}}}.</P>
+<P ALIGN="CENTER">{?which_jobs=?Jobs listed in print order; held jobs appear first.:{which_jobs=Jobs listed in ascending order.?:Jobs listed in descending order.}}</P>
index 20b544a..7a0b14e 100644 (file)
@@ -2,4 +2,4 @@
 {?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="完了したジョブを表示"></FORM>}
 {?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="すべてのジョブを表示"></FORM>}
 
-<P ALIGN="CENTER">{total=0?ジョブはありません:{total} 個の{?which_jobs=?アクティブな:{which_jobs=all?:完了した}}ジョブのうち {#job_id} 個を表示中}}。</P>
+<P ALIGN="CENTER">{?which_jobs=?Jobs listed in print order; held jobs appear first.:{which_jobs=Jobs listed in ascending order.?:Jobs listed in descending order.}}</P>
index a8a365b..3b9a73a 100644 (file)
@@ -2,4 +2,4 @@
 {?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Show Completed Jobs"></FORM>}
 {?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Show All Jobs"></FORM>}
 
-<P ALIGN="CENTER">{total=0?No jobs:Showing {#job_id} of {total} {?which_jobs=?active:{which_jobs=all?:completed}} job{total=1?:s}}.</P>
+<P ALIGN="CENTER">{?which_jobs=?Jobs listed in print order; held jobs appear first.:{which_jobs=Jobs listed in ascending order.?:Jobs listed in descending order.}}</P>
index c967b33..7b97719 100644 (file)
@@ -2,4 +2,4 @@
 {?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="conclu&iacute;dos"><INPUT TYPE="SUBMIT" VALUE="Mostrar trabalhos conclu&iacute;dos"></FORM>}
 {?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Mostrar todos trabalhos"></FORM>}
 
-<P ALIGN="CENTER">{total=0?Nenhum trabalho:Mostrando {#job_id} de {total} trabalho{total=1?:s}} {?which_jobs=?ativo{total<2?:s}}:{which_jobs=all?:conclu&iacute;dos}.</P>
+<P ALIGN="CENTER">{?which_jobs=?Jobs listed in print order; held jobs appear first.:{which_jobs=Jobs listed in ascending order.?:Jobs listed in descending order.}}</P>
index 6692c44..ed68f53 100644 (file)
@@ -2,4 +2,4 @@
 {?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Показать завершенные задания"></FORM>}
 {?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Показать все задания"></FORM>}
 
-<P ALIGN="CENTER">{total=0?Нет заданий:Задание {#job_id} из {total} {?which_jobs=?активных:{which_jobs=all?:завершенных}}}.</P>
+<P ALIGN="CENTER">{?which_jobs=?Jobs listed in print order; held jobs appear first.:{which_jobs=Jobs listed in ascending order.?:Jobs listed in descending order.}}</P>
index b336a81..05fe9b2 100644 (file)
@@ -94,8 +94,8 @@ typedef unsigned long useconds_t;
  * Version of software...
  */
 
-#define CUPS_SVERSION "CUPS v2.2.2"
-#define CUPS_MINIMAL "CUPS/2.2.2"
+#define CUPS_SVERSION "CUPS v2.2.3"
+#define CUPS_MINIMAL "CUPS/2.2.3"
 
 
 /*
index 271b699..26b12a7 100644 (file)
@@ -22,8 +22,8 @@
  * Version of software...
  */
 
-#define CUPS_SVERSION "CUPS v2.2.2"
-#define CUPS_MINIMAL "CUPS/2.2.2"
+#define CUPS_SVERSION "CUPS v2.2.3"
+#define CUPS_MINIMAL "CUPS/2.2.3"
 
 
 /*