]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Merge changes from CUPS 1.5svn-r8916.
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Wed, 9 Dec 2009 18:36:59 +0000 (18:36 +0000)
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Wed, 9 Dec 2009 18:36:59 +0000 (18:36 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1766 a1ca3aef-8c08-0410-bb20-df032aa958be

162 files changed:
CHANGES-1.4.txt
CHANGES.txt
backend/backend-private.h
backend/ieee1284.c
backend/ipp.c
backend/lpd.c
backend/network.c
backend/parallel.c
backend/runloop.c
backend/snmp-supplies.c
backend/snmp.c
backend/socket.c
backend/usb-darwin.c
backend/usb-unix.c
cgi-bin/admin.c
cgi-bin/cgi.h
cgi-bin/classes.c
cgi-bin/help-index.h
cgi-bin/help.c
cgi-bin/ipp-var.c
cgi-bin/jobs.c
cgi-bin/libcupscgi.exp
cgi-bin/printers.c
cgi-bin/template.c
cgi-bin/var.c
conf/mime.convs.in
cups/backend.h
cups/conflicts.c
cups/dest.c
cups/http.c
cups/mark.c
cups/ppd.c
cups/ppd.h
cups/sidechannel.c
cups/tempfile.c
cups/test.ppd
cups/util.c
doc/cups.css
doc/de/index.html.in
doc/id/index.html.in [new file with mode: 0644]
locale/cups_id.po [new file with mode: 0644]
man/cupstestppd.man
packaging/cups.list.in
ppdc/ppdc-catalog.cxx
ppdc/ppdc-driver.cxx
scheduler/conf.c
scheduler/dirsvc.c
scheduler/ipp.c
scheduler/job.c
scheduler/main.c
scheduler/org.cups.cups-lpd.plist.in
scheduler/org.cups.cupsd.plist
scheduler/process.c
scheduler/select.c
systemv/cupstestppd.c
templates/add-printer.tmpl
templates/admin.tmpl
templates/choose-device.tmpl
templates/de/add-printer.tmpl
templates/de/admin.tmpl
templates/de/class-confirm.tmpl
templates/de/help-header.tmpl
templates/de/jobs.tmpl
templates/de/modify-printer.tmpl
templates/de/option-conflict.tmpl
templates/de/printer-confirm.tmpl
templates/de/printer.tmpl
templates/es/add-printer.tmpl
templates/es/admin.tmpl
templates/es/modify-printer.tmpl
templates/es/option-conflict.tmpl
templates/eu/add-printer.tmpl
templates/eu/admin.tmpl
templates/eu/modify-printer.tmpl
templates/eu/option-conflict.tmpl
templates/id/add-class.tmpl [new file with mode: 0644]
templates/id/add-printer.tmpl [new file with mode: 0644]
templates/id/add-rss-subscription.tmpl [new file with mode: 0644]
templates/id/admin.tmpl [new file with mode: 0644]
templates/id/choose-device.tmpl [new file with mode: 0644]
templates/id/choose-make.tmpl [new file with mode: 0644]
templates/id/choose-model.tmpl [new file with mode: 0644]
templates/id/choose-serial.tmpl [new file with mode: 0644]
templates/id/choose-uri.tmpl [new file with mode: 0644]
templates/id/class-added.tmpl [new file with mode: 0644]
templates/id/class-confirm.tmpl [new file with mode: 0644]
templates/id/class-deleted.tmpl [new file with mode: 0644]
templates/id/class-jobs-header.tmpl [new file with mode: 0644]
templates/id/class-modified.tmpl [new file with mode: 0644]
templates/id/class.tmpl [new file with mode: 0644]
templates/id/classes-header.tmpl [new file with mode: 0644]
templates/id/classes.tmpl [new file with mode: 0644]
templates/id/command.tmpl [new file with mode: 0644]
templates/id/edit-config.tmpl [new file with mode: 0644]
templates/id/error-op.tmpl [new file with mode: 0644]
templates/id/error.tmpl [new file with mode: 0644]
templates/id/header.tmpl.in [new file with mode: 0644]
templates/id/help-header.tmpl [new file with mode: 0644]
templates/id/help-printable.tmpl [new file with mode: 0644]
templates/id/help-trailer.tmpl [new file with mode: 0644]
templates/id/job-cancel.tmpl [new file with mode: 0644]
templates/id/job-hold.tmpl [new file with mode: 0644]
templates/id/job-move.tmpl [new file with mode: 0644]
templates/id/job-moved.tmpl [new file with mode: 0644]
templates/id/job-release.tmpl [new file with mode: 0644]
templates/id/job-restart.tmpl [new file with mode: 0644]
templates/id/jobs-header.tmpl [new file with mode: 0644]
templates/id/jobs.tmpl [new file with mode: 0644]
templates/id/list-available-printers.tmpl [new file with mode: 0644]
templates/id/modify-class.tmpl [new file with mode: 0644]
templates/id/modify-printer.tmpl [new file with mode: 0644]
templates/id/norestart.tmpl [new file with mode: 0644]
templates/id/option-boolean.tmpl [new file with mode: 0644]
templates/id/option-conflict.tmpl [new file with mode: 0644]
templates/id/option-header.tmpl [new file with mode: 0644]
templates/id/option-pickmany.tmpl [new file with mode: 0644]
templates/id/option-pickone.tmpl [new file with mode: 0644]
templates/id/option-trailer.tmpl [new file with mode: 0644]
templates/id/pager.tmpl [new file with mode: 0644]
templates/id/printer-accept.tmpl [new file with mode: 0644]
templates/id/printer-added.tmpl [new file with mode: 0644]
templates/id/printer-configured.tmpl [new file with mode: 0644]
templates/id/printer-confirm.tmpl [new file with mode: 0644]
templates/id/printer-default.tmpl [new file with mode: 0644]
templates/id/printer-deleted.tmpl [new file with mode: 0644]
templates/id/printer-jobs-header.tmpl [new file with mode: 0644]
templates/id/printer-modified.tmpl [new file with mode: 0644]
templates/id/printer-purge.tmpl [new file with mode: 0644]
templates/id/printer-reject.tmpl [new file with mode: 0644]
templates/id/printer-start.tmpl [new file with mode: 0644]
templates/id/printer-stop.tmpl [new file with mode: 0644]
templates/id/printer.tmpl [new file with mode: 0644]
templates/id/printers-header.tmpl [new file with mode: 0644]
templates/id/printers.tmpl [new file with mode: 0644]
templates/id/restart.tmpl [new file with mode: 0644]
templates/id/samba-export.tmpl [new file with mode: 0644]
templates/id/samba-exported.tmpl [new file with mode: 0644]
templates/id/search.tmpl [new file with mode: 0644]
templates/id/set-printer-options-header.tmpl [new file with mode: 0644]
templates/id/set-printer-options-trailer.tmpl [new file with mode: 0644]
templates/id/subscription-added.tmpl [new file with mode: 0644]
templates/id/subscription-canceled.tmpl [new file with mode: 0644]
templates/id/test-page.tmpl [new file with mode: 0644]
templates/id/trailer.tmpl [new file with mode: 0644]
templates/id/users.tmpl [new file with mode: 0644]
templates/ja/add-printer.tmpl
templates/ja/admin.tmpl
templates/ja/modify-printer.tmpl
templates/ja/option-conflict.tmpl
templates/modify-printer.tmpl
templates/option-conflict.tmpl
templates/pl/add-printer.tmpl
templates/pl/admin.tmpl
templates/pl/jobs-header.tmpl
templates/pl/modify-printer.tmpl
templates/pl/option-conflict.tmpl
templates/ru/add-printer.tmpl
templates/ru/admin.tmpl
templates/ru/jobs-header.tmpl
templates/ru/modify-printer.tmpl
templates/ru/option-conflict.tmpl
test/run-stp-tests.sh

index e83ba0332a29ddef0c3af57b973310c497aaabb9..74c59597118fce61f2b4ebcf81758619d29708d9 100644 (file)
@@ -1,8 +1,64 @@
 CHANGES-1.4.txt
 ---------------
 
+CHANGES IN CUPS V1.4.3
+
+       - SECURITY: The scheduler could try responding on a closed client
+         connection, leading to a crash (STR #3200)
+       - Localization updates (STR #3352, STR #3409, STR #3422)
+       - The scheduler would crash when an active printer was deleted.
+       - The snmp backend did not work with some printers (STR #3413)
+       - The web interface did not show the conflicting values when setting
+         options (STR #3440)
+       - Setting options in the web interface did not always work (STR #3439)
+       - The scheduler did not use the Get-Job-Attributes policy for a printer
+         (STR #3431)
+       - The scheduler added two job-name attributes to each job object
+         (STR #3428)
+       - CSS files would not print (STR #3442)
+       - The scheduler did not clean out completed jobs when PreserveJobHistory
+         was turned off (STR #3425)
+       - The web interface did not show completed jobs for a printer
+         (STR #3436)
+       - Authenticated printing did not always work when printing directly to
+         a remote server (STR #3435)
+       - The USB backend did not work on Solaris (STR #3423)
+       - cupstestppd didn't catch problems with JobPatchFile definitions
+         (STR #3421)
+       - The socket backend could crash if a SNMP string had a negative length.
+       - Fixed some termination issues with the USB backend on Mac OS X.
+       - The side-channel APIs did not handle interrupts properly.
+       - The network backends incorrectly cleared the media-empty-warning
+         state.
+       - The web interface did not allow users to successfully add serial
+         printers (STR #3391)
+       - cupsTempFd() did not work in some situations (STR #3382)
+       - Some C API headers were missing C++ wrapper logic.
+       - The PPD compiler did not localize single-language PPD options properly
+         (STR #3386)
+       - Modifying a printer from the web interface sometimes caused the wrong
+         driver to be selected (STR #3418)
+       - The scheduler did not handle out-of-memory conditions properly when
+         loading a job (STR #3407)
+       - When adding printers from the web interface, the dynamic updates of
+         the device list made it hard to pick a device (STR #3406)
+       - Fixed a typo in the web interface admin page template (STR 3403)
+       - The web interface did not preserve the "printer is shared" state when
+         modifying a printer (STR #3390)
+       - The PPD compiler incorrectly inserted translations of empty strings
+         (STR #3411)
+       - The scheduler did not reset the SIGPIPE handler of child processes
+         (STR #3399)
+       - cupsGetNamedDest() incorrectly returned the default printer if the
+         named printer did not exist (STR #3397)
+       - Fixed a GNU TLS error handling bug (STR #3381)
+
+
 CHANGES IN CUPS V1.4.2
 
+       - SECURITY: The CUPS web interface was vulnerable to several XSS and
+         HTTP header/body attacks via attribute injection (STR #3367,
+         STR #3401)
        - Fixed localization errors (STR #3359, STR #3372, STR #3380, STR #3387)
        - The documentation for classes.conf and printers.conf did not provide
          the correct instructions for manual changes (STR #3351)
index aa6e39bd0d02c3a40b74e6abb5daf47f52dc4b20..b8f215201d6610b9d7d7b002e0d7938808a32ee7 100644 (file)
@@ -1,8 +1,10 @@
-CHANGES.txt - 2009-10-15
+CHANGES.txt - 2009-11-19
 ------------------------
 
 CHANGES IN CUPS V1.5b1
 
+       - The cupstestppd tool now warns about non-unique filenames and
+         provides a way to ignore all filename warnings.
        - Dropped support for the recoverable: and recovered: message prefixes.
        - The scheduler now requires that filters and backends have group write
          permissions disabled.
index 7d8fd2e2c514cf6e914a2d4b8f9d3ee07e5225f3..6db6fa495e94d8ba8a7aa4ff932f94ed17f4cfbc 100644 (file)
 #  include <cups/string.h>
 #  include <signal.h>
 
+#  ifdef __linux
+#    include <sys/ioctl.h>
+#    include <linux/lp.h>
+#    define IOCNR_GET_DEVICE_ID                1
+#    define LPIOC_GET_DEVICE_ID(len)   _IOC(_IOC_READ, 'P', IOCNR_GET_DEVICE_ID, len)
+#    include <linux/parport.h>
+#    include <linux/ppdev.h>
+#    include <unistd.h>
+#    include <fcntl.h>
+#  endif /* __linux */
+
+#  ifdef __sun
+#    ifdef __sparc
+#      include <sys/ecppio.h>
+#    else
+#      include <sys/ioccom.h>
+#      include <sys/ecppsys.h>
+#    endif /* __sparc */
+#  endif /* __sun */
+
 
 /*
  * C++ magic...
@@ -280,7 +300,8 @@ extern int          backendNetworkSideCB(int print_fd, int device_fd,
                                             int snmp_fd, http_addr_t *addr,
                                             int use_bc);
 extern ssize_t         backendRunLoop(int print_fd, int device_fd, int snmp_fd,
-                                      http_addr_t *addr, int use_bc,
+                                      http_addr_t *addr, int use_bc, 
+                                      int update_state, 
                                       int (*side_cb)(int print_fd,
                                                      int device_fd,
                                                      int snmp_fd,
index 46499db45720fae59274afedc4f7dd7192c94ec4..6b2d010f0b893ab4cbcf2152652ab7c95d45363a 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   IEEE-1284 support functions for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 2007-2008 by Apple Inc.
+ *   Copyright 2007-2009 by Apple Inc.
  *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  *   These coded instructions, statements, and computer programs are the
 
 #include "backend-private.h"
 
-#ifdef __linux
-#  include <sys/ioctl.h>
-#  include <linux/lp.h>
-#  define IOCNR_GET_DEVICE_ID          1
-#  define LPIOC_GET_DEVICE_ID(len)     _IOC(_IOC_READ, 'P', IOCNR_GET_DEVICE_ID, len)
-#  include <linux/parport.h>
-#  include <linux/ppdev.h>
-#  include <unistd.h>
-#  include <fcntl.h>
-#endif /* __linux */
-
-#ifdef __sun
-#  ifdef __sparc
-#    include <sys/ecppio.h>
-#  else
-#    include <sys/ioccom.h>
-#    include <sys/ecppsys.h>
-#  endif /* __sparc */
-#endif /* __sun */
-
 
 /*
  * 'backendGetDeviceID()' - Get the IEEE-1284 device ID string and
index 92e3bdc129f43d557caee8713d1aec8ccc46e532..f5cfbd000cde32bad3c34f62d98de76d53f64649 100644 (file)
@@ -432,7 +432,7 @@ main(int  argc,                             /* I - Number of command-line args */
 
     _cupsLangPuts(stderr, _("INFO: Copying print data...\n"));
 
-    tbytes = backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0,
+    tbytes = backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0,
                             backendNetworkSideCB);
 
     if (snmp_fd >= 0)
index 0e91a5388a94329c6ba6e6c8ec55dbb7faa15c24..c4436aabfc90a56e6a82a57d7ee07184cf4901ee 100644 (file)
@@ -447,7 +447,8 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
 
     _cupsLangPuts(stderr, _("INFO: Copying print data...\n"));
 
-    backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, backendNetworkSideCB);
+    backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0, 
+                  backendNetworkSideCB);
 
     if (snmp_fd >= 0)
       _cupsSNMPClose(snmp_fd);
index e5cb16d1a68f62dd47800b328b5da063be816640..0a4908a77e03da8ffac70d70b0d569627d8e221d 100644 (file)
@@ -170,9 +170,13 @@ backendNetworkSideCB(
 
                case CUPS_ASN1_BIT_STRING :
                case CUPS_ASN1_OCTET_STRING :
-                   i = (int)(sizeof(data) - (dataptr - data));
-                   if (packet.object_value.string.num_bytes < i)
+                   if (packet.object_value.string.num_bytes < 0)
+                     i = 0;
+                   else if (packet.object_value.string.num_bytes < 
+                            (sizeof(data) - (dataptr - data)))
                      i = packet.object_value.string.num_bytes;
+                   else
+                     i = (int)(sizeof(data) - (dataptr - data));
 
                    memcpy(dataptr, packet.object_value.string.bytes, i);
 
index 03d59d443dd062c735c6a51118e506f7a4dcb82e..b0662efbee61e4219207eaa760ef3ee1954117d7 100644 (file)
@@ -284,7 +284,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
       lseek(print_fd, 0, SEEK_SET);
     }
 
-    tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb);
+    tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb);
 
     if (print_fd != 0 && tbytes >= 0)
       _cupsLangPrintf(stderr,
index b76decc03690b9978f772fafd482da1e2f35207a..3c914ecf4672d7634f27a50ff04ad7e78e1d878a 100644 (file)
@@ -147,6 +147,7 @@ backendRunLoop(
     int         snmp_fd,               /* I - SNMP socket or -1 if none */
     http_addr_t *addr,                 /* I - Address of device */
     int         use_bc,                        /* I - Use back-channel? */
+    int         update_state,          /* I - Update printer-state-reasons? */
     int         (*side_cb)(int, int, int, http_addr_t *, int))
                                        /* I - Side-channel callback */
 {
@@ -245,7 +246,7 @@ backendRunLoop(
        * Pause printing to clear any pending errors...
        */
 
-       if (errno == ENXIO && offline != 1)
+       if (errno == ENXIO && offline != 1 && update_state)
        {
          fputs("STATE: +offline-report\n", stderr);
          _cupsLangPuts(stderr, _("INFO: Printer is currently offline.\n"));
@@ -351,7 +352,7 @@ backendRunLoop(
 
         if (errno == ENOSPC)
        {
-         if (paperout != 1)
+         if (paperout != 1 && update_state)
          {
            fputs("STATE: +media-empty-warning\n", stderr);
            _cupsLangPuts(stderr, _("ERROR: Out of paper\n"));
@@ -360,7 +361,7 @@ backendRunLoop(
         }
        else if (errno == ENXIO)
        {
-         if (offline != 1)
+         if (offline != 1 && update_state)
          {
            fputs("STATE: +offline-report\n", stderr);
            _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
@@ -376,13 +377,13 @@ backendRunLoop(
       }
       else
       {
-        if (paperout)
+        if (paperout && update_state)
        {
          fputs("STATE: -media-empty-warning\n", stderr);
          paperout = 0;
        }
 
-       if (offline)
+       if (offline && update_state)
        {
          fputs("STATE: -offline-report\n", stderr);
          _cupsLangPuts(stderr, _("INFO: Printer is now online.\n"));
index 6be80ee14e6f251f1488b3c869238ff9160d8923..8ee031d6940107a5310a8e4efacaf9314dd63a68 100644 (file)
@@ -232,6 +232,8 @@ backendSNMPSupplies(
     if (packet.object_value.string.num_bytes == 2)
       new_state = (packet.object_value.string.bytes[0] << 8) |
                  packet.object_value.string.bytes[1];
+    else if (packet.object_value.string.num_bytes == 1)
+      new_state = (packet.object_value.string.bytes[0] << 8);
     else
       new_state = 0;
 
index 0b7513d5b3faca5d4a5469d63848dcb214e46789..17a1e73c9474e81a64661b0a0d02e3983e43358e 100644 (file)
@@ -999,7 +999,7 @@ read_snmp_response(int fd)          /* I - SNMP socket file descriptor */
                       DEVICE_PRODUCT, LexmarkProductOID2);
        _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
                       packet.community, CUPS_ASN1_GET_REQUEST,
-                      DEVICE_URI, LexmarkDeviceIdOID);
+                      DEVICE_ID, LexmarkDeviceIdOID);
        _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
                       packet.community, CUPS_ASN1_GET_REQUEST,
                       DEVICE_PRODUCT, XeroxProductOID);
@@ -1054,7 +1054,9 @@ read_snmp_response(int fd)                /* I - SNMP socket file descriptor */
        break;
 
     case DEVICE_ID :
-       if (device && packet.object_type == CUPS_ASN1_OCTET_STRING)
+       if (device && packet.object_type == CUPS_ASN1_OCTET_STRING &&
+           (!device->id ||
+            strlen(device->id) < packet.object_value.string.num_bytes))
        {
         /*
          * Update an existing cache entry...
@@ -1107,7 +1109,7 @@ read_snmp_response(int fd)                /* I - SNMP socket file descriptor */
 
     case DEVICE_URI :
        if (device && packet.object_type == CUPS_ASN1_OCTET_STRING &&
-           !device->uri)
+           !device->uri && packet.object_value.string.num_bytes > 0)
        {
         /*
          * Update an existing cache entry...
index 506ba9ec21c756d1ed51ee7f31bb114b70525163..46d7f5edad389390fb6a982bf67f1f40b86f69c2 100644 (file)
@@ -375,7 +375,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
       lseek(print_fd, 0, SEEK_SET);
     }
 
-    tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addr->addr), 1,
+    tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addr->addr), 1, 0, 
                             backendNetworkSideCB);
 
     if (print_fd != 0 && tbytes >= 0)
index d40e60a438515872e833a8ce631d4925804a398f..9eba287075a37738ef0383e4ff79600430eb14d6 100644 (file)
@@ -498,6 +498,7 @@ print_device(const char *uri,               /* I - Device URI */
     {
       _cupsLangPuts(stderr, _("ERROR: Fatal USB error\n"));
       fputs("DEBUG: Couldn't create side-channel thread\n", stderr);
+      registry_close();
       return (CUPS_BACKEND_STOP);
     }
   }
@@ -516,6 +517,7 @@ print_device(const char *uri,               /* I - Device URI */
   {
     _cupsLangPuts(stderr, _("ERROR: Fatal USB error\n"));
     fputs("DEBUG: Couldn't create read thread\n", stderr);
+    registry_close();
     return (CUPS_BACKEND_STOP);
   }
 
@@ -594,13 +596,15 @@ print_device(const char *uri,             /* I - Device URI */
        {
          fputs("DEBUG: Received an interrupt before any bytes were "
                "written, aborting\n", stderr);
+          registry_close();
           return (CUPS_BACKEND_OK);
        }
        else if (errno != EAGAIN && errno != EINTR)
        {
          _cupsLangPuts(stderr, _("ERROR: Unable to read print data\n"));
          perror("DEBUG: select");
-         return (CUPS_BACKEND_FAILED);
+         registry_close();
+          return (CUPS_BACKEND_FAILED);
        }
       }
 
@@ -642,6 +646,7 @@ print_device(const char *uri,               /* I - Device URI */
          {
            _cupsLangPuts(stderr, _("ERROR: Unable to read print data\n"));
            perror("DEBUG: read");
+           registry_close();
            return (CUPS_BACKEND_FAILED);
          }
 
@@ -943,7 +948,12 @@ sidechannel_thread(void *reference)
     datalen = sizeof(data);
 
     if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
-      break;
+    {
+      if (status == CUPS_SC_STATUS_TIMEOUT)
+       continue;
+      else
+       break;
+    }
 
     switch (command)
     {
@@ -1901,6 +1911,7 @@ static void run_legacy_backend(int argc,
     * Setup a SIGTERM handler then block it before forking...
     */
 
+    int                        err;            /* posix_spawn result */
     struct sigaction   action;         /* POSIX signal action */
     sigset_t           newmask,        /* New signal mask */
                        oldmask;        /* Old signal mask */
@@ -1967,10 +1978,11 @@ static void run_legacy_backend(int argc,
 
     my_argv[i] = NULL;
 
-    if (posix_spawn(&child_pid, usbpath, NULL, &attrs, my_argv, environ))
+    if ((err = posix_spawn(&child_pid, usbpath, NULL, &attrs, my_argv,
+                           environ)) != 0)
     {
       fprintf(stderr, "DEBUG: Unable to exec %s: %s\n", usbpath,
-              strerror(errno));
+              strerror(err));
       _cupsLangPrintf(stderr, _("Unable to use legacy USB class driver\n"));
       exit(CUPS_BACKEND_STOP);
     }
index 44faa630c03d8aa77540761f69e35c9ab1ff3369..6d89deecfefc297174fdda64e4df4848ba5b6531 100644 (file)
@@ -5,7 +5,7 @@
  *
  *   This file is included from "usb.c" when compiled on UNIX/Linux.
  *
- *   Copyright 2007-2008 by Apple Inc.
+ *   Copyright 2007-2009 by Apple Inc.
  *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -187,10 +187,10 @@ print_device(const char *uri,             /* I - Device URI */
     * select() or poll(), so we can't support the sidechannel either...
     */
 
-    tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, NULL);
+    tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, NULL);
 
 #else
-    tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb);
+    tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb);
 #endif /* __sun */
 
     if (print_fd != 0 && tbytes >= 0)
index 520e6e50f3b4fcf5501afb52d48f5a90f1f44287..cdb1a2a8981f3834d4e9416d4e6ca614318f9ed5 100644 (file)
 #include <limits.h>
 
 
-/*
- * Local globals...
- */
-
-static int     current_device;         /* Current device for add/modify */
-static time_t  last_device_time;       /* Last update time for device list */
-
-
 /*
  * Local functions...
  */
@@ -65,7 +57,7 @@ static void   choose_device_cb(const char *device_class,
                                  const char *device_make_and_model,
                                  const char *device_uri,
                                  const char *device_location,
-                                const char *title);
+                                int *current_device);
 static void    do_add_rss_subscription(http_t *http);
 static void    do_am_class(http_t *http, int modify);
 static void    do_am_printer(http_t *http, int modify);
@@ -122,6 +114,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
   */
 
   cgiSetVariable("SECTION", "admin");
+  cgiSetVariable("REFRESH_PAGE", "");
 
  /*
   * See if we have form data...
@@ -191,7 +184,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
   }
   else if (op && !strcmp(op, "redirect"))
   {
-    const char *url;                   /* Redirection URL... */
+    const char *url;                   /* Redirection URL... */
     char       prefix[1024];           /* URL prefix */
 
 
@@ -205,7 +198,50 @@ main(int  argc,                            /* I - Number of command-line arguments */
     fprintf(stderr, "DEBUG: redirecting with prefix %s!\n", prefix);
 
     if ((url = cgiGetVariable("URL")) != NULL)
-      printf("Location: %s%s\n\n", prefix, url);
+    {
+      char     encoded[1024],          /* Encoded URL string */
+               *ptr;                   /* Pointer into encoded string */
+
+
+      ptr = encoded;
+      if (*url != '/')
+        *ptr++ = '/';
+
+      for (; *url && ptr < (encoded + sizeof(encoded) - 4); url ++)
+      {
+        if (strchr("%@&+ <>#=", *url) || *url < ' ' || *url & 128)
+       {
+        /*
+         * Percent-encode this character; safe because we have at least 4
+         * bytes left in the array...
+         */
+
+         sprintf(ptr, "%%%02X", *url & 255);
+         ptr += 3;
+       }
+       else
+         *ptr++ = *url;
+      }
+
+      *ptr = '\0';
+
+      if (*url)
+      {
+       /*
+        * URL was too long, just redirect to the admin page...
+       */
+
+       printf("Location: %s/admin\n\n", prefix);
+      }
+      else
+      {
+       /*
+        * URL is OK, redirect there...
+       */
+
+        printf("Location: %s%s\n\n", prefix, encoded);
+      }
+    }
     else
       printf("Location: %s/admin\n\n", prefix);
   }
@@ -246,37 +282,20 @@ choose_device_cb(
     const char *device_make_and_model, /* I - Make and model */
     const char *device_uri,            /* I - Device URI */
     const char *device_location,       /* I - Location */
-    const char *title)                 /* I - Page title */
+    int        *current_device)                /* I - Current device index */
 {
  /*
   * Add the device to the array...
   */
 
-  cgiSetArray("device_class", current_device, device_class);
-  cgiSetArray("device_id", current_device, device_id);
-  cgiSetArray("device_info", current_device, device_info);
-  cgiSetArray("device_make_and_model", current_device, device_make_and_model);
-  cgiSetArray("device_uri", current_device, device_uri);
-  cgiSetArray("device_location", current_device, device_location);
-
-  current_device ++;
-
-  if (time(NULL) > last_device_time && cgiSupportsMultipart())
-  {
-   /*
-    * Update the page...
-    */
-
-    if (!last_device_time)
-      cgiStartMultipart();
-
-    cgiStartHTML(title);
-    cgiCopyTemplateLang("choose-device.tmpl");
-    cgiEndHTML();
-    fflush(stdout);
+  cgiSetArray("device_class", *current_device, device_class);
+  cgiSetArray("device_id", *current_device, device_id);
+  cgiSetArray("device_info", *current_device, device_info);
+  cgiSetArray("device_make_and_model", *current_device, device_make_and_model);
+  cgiSetArray("device_uri", *current_device, device_uri);
+  cgiSetArray("device_location", *current_device, device_location);
 
-    time(&last_device_time);
-  }
+  (*current_device) ++;
 }
 
 
@@ -345,6 +364,31 @@ do_add_rss_subscription(http_t *http)      /* I - HTTP connection */
     * and classes and (re)show the add page...
     */
 
+    if (cgiGetVariable("EVENT_JOB_CREATED"))
+      cgiSetVariable("EVENT_JOB_CREATED", "CHECKED");
+    if (cgiGetVariable("EVENT_JOB_COMPLETED"))
+      cgiSetVariable("EVENT_JOB_COMPLETED", "CHECKED");
+    if (cgiGetVariable("EVENT_JOB_STOPPED"))
+      cgiSetVariable("EVENT_JOB_STOPPED", "CHECKED");
+    if (cgiGetVariable("EVENT_JOB_CONFIG_CHANGED"))
+      cgiSetVariable("EVENT_JOB_CONFIG_CHANGED", "CHECKED");
+    if (cgiGetVariable("EVENT_PRINTER_STOPPED"))
+      cgiSetVariable("EVENT_PRINTER_STOPPED", "CHECKED");
+    if (cgiGetVariable("EVENT_PRINTER_ADDED"))
+      cgiSetVariable("EVENT_PRINTER_ADDED", "CHECKED");
+    if (cgiGetVariable("EVENT_PRINTER_MODIFIED"))
+      cgiSetVariable("EVENT_PRINTER_MODIFIED", "CHECKED");
+    if (cgiGetVariable("EVENT_PRINTER_DELETED"))
+      cgiSetVariable("EVENT_PRINTER_DELETED", "CHECKED");
+    if (cgiGetVariable("EVENT_SERVER_STARTED"))
+      cgiSetVariable("EVENT_SERVER_STARTED", "CHECKED");
+    if (cgiGetVariable("EVENT_SERVER_STOPPED"))
+      cgiSetVariable("EVENT_SERVER_STOPPED", "CHECKED");
+    if (cgiGetVariable("EVENT_SERVER_RESTARTED"))
+      cgiSetVariable("EVENT_SERVER_RESTARTED", "CHECKED");
+    if (cgiGetVariable("EVENT_SERVER_AUDIT"))
+      cgiSetVariable("EVENT_SERVER_AUDIT", "CHECKED");
+
     request  = ippNewRequest(CUPS_GET_PRINTERS);
     response = cupsDoRequest(http, request, "/");
 
@@ -467,6 +511,7 @@ do_am_class(http_t *http,           /* I - HTTP connection */
   ipp_attribute_t *attr;               /* member-uris attribute */
   char         uri[HTTP_MAX_URI];      /* Device or printer URI */
   const char   *name,                  /* Pointer to class name */
+               *op,                    /* Operation name */
                *ptr;                   /* Pointer to CGI variable */
   const char   *title;                 /* Title of page */
   static const char * const pattrs[] = /* Requested printer attributes */
@@ -478,6 +523,7 @@ do_am_class(http_t *http,           /* I - HTTP connection */
 
 
   title = cgiText(modify ? _("Modify Class") : _("Add Class"));
+  op    = cgiGetVariable("OP");
   name  = cgiGetVariable("PRINTER_NAME");
 
   if (cgiGetVariable("PRINTER_LOCATION") == NULL)
@@ -502,6 +548,12 @@ do_am_class(http_t *http,          /* I - HTTP connection */
     * Do the request and get back a response...
     */
 
+    cgiClearVariables();
+    if (op)
+      cgiSetVariable("OP", op);
+    if (name)
+      cgiSetVariable("PRINTER_NAME", name);
+
     if ((response = cupsDoRequest(http, request, "/")) != NULL)
     {
      /*
@@ -764,6 +816,7 @@ do_am_printer(http_t *http,         /* I - HTTP connection */
   const char   *name,                  /* Pointer to class name */
                *ptr;                   /* Pointer to CGI variable */
   const char   *title;                 /* Title of page */
+  int          current_device;         /* Index of current device */
   static int   baudrates[] =           /* Baud rates */
                {
                  1200,
@@ -924,31 +977,42 @@ do_am_printer(http_t *http,               /* I - HTTP connection */
     }
 
    /*
-    * Scan for devices for up to 30 seconds, updating the page as we find
-    * them...
+    * For modern browsers, start a multi-part page so we can show that something
+    * is happening.  Non-modern browsers just get everything at the end...
+    */
+
+    if (cgiSupportsMultipart())
+    {
+      cgiStartMultipart();
+      cgiStartHTML(title);
+      cgiCopyTemplateLang("choose-device.tmpl");
+      cgiEndHTML();
+      fflush(stdout);
+    }
+
+   /*
+    * Scan for devices for up to 30 seconds...
     */
 
     fputs("DEBUG: Getting list of devices...\n", stderr);
 
-    last_device_time = 0;
-    current_device   = 0;
+    current_device = 0;
     if (cupsGetDevices(http, 30, CUPS_INCLUDE_ALL, CUPS_EXCLUDE_NONE,
                        (cups_device_cb_t)choose_device_cb,
-                      (void *)title) == IPP_OK)
+                      &current_device) == IPP_OK)
     {
       fputs("DEBUG: Got device list!\n", stderr);
 
-      if (!cgiSupportsMultipart())
-      {
-       /*
-        * Non-modern browsers that don't support multi-part documents get
-       * everything at the end...
-       */
+      if (cgiSupportsMultipart())
+        cgiStartMultipart();
 
-       cgiStartHTML(title);
-       cgiCopyTemplateLang("choose-device.tmpl");
-       cgiEndHTML();
-      }
+      cgiSetVariable("CUPS_GET_DEVICES_DONE", "1");
+      cgiStartHTML(title);
+      cgiCopyTemplateLang("choose-device.tmpl");
+      cgiEndHTML();
+
+      if (cgiSupportsMultipart())
+        cgiEndMultipart();
     }
     else
     {
@@ -969,16 +1033,6 @@ do_am_printer(http_t *http,               /* I - HTTP connection */
         return;
       }
     }
-
-   /*
-    * Show the final selection page...
-    */
-
-    cgiSetVariable("CUPS_GET_DEVICES_DONE", "1");
-    cgiStartHTML(title);
-    cgiCopyTemplateLang("choose-device.tmpl");
-    cgiEndHTML();
-    cgiEndMultipart();
   }
   else if (strchr(var, '/') == NULL)
   {
@@ -1044,6 +1098,11 @@ do_am_printer(http_t *http,              /* I - HTTP connection */
         if ((attr = ippFindAttribute(oldinfo, "printer-location",
                                     IPP_TAG_TEXT)) != NULL)
           cgiSetVariable("PRINTER_LOCATION", attr->values[0].string.text);
+
+       if ((attr = ippFindAttribute(oldinfo, "printer-is-shared",
+                                    IPP_TAG_BOOLEAN)) != NULL)
+         cgiSetVariable("PRINTER_IS_SHARED",
+                        attr->values[0].boolean ? "1" : "0");
       }
 
       cgiCopyTemplateLang("modify-printer.tmpl");
@@ -1179,7 +1238,7 @@ do_am_printer(http_t *http,               /* I - HTTP connection */
       * Got the list of PPDs, see if the user has selected a make...
       */
 
-      if (cgiSetIPPVars(response, NULL, NULL, NULL, 0) == 0)
+      if (cgiSetIPPVars(response, NULL, NULL, NULL, 0) == 0 && !modify)
       {
        /*
         * No PPD files with this make, try again with all makes...
@@ -1215,8 +1274,11 @@ do_am_printer(http_t *http,              /* I - HTTP connection */
        */
 
         cgiStartHTML(title);
-       cgiSetVariable("CURRENT_MAKE_AND_MODEL",
-                      cgiGetArray("PPD_MAKE_AND_MODEL", 0));
+       if (!cgiGetVariable("PPD_MAKE"))
+         cgiSetVariable("PPD_MAKE", cgiGetVariable("CURRENT_MAKE"));
+       if (!modify)
+         cgiSetVariable("CURRENT_MAKE_AND_MODEL",
+                        cgiGetArray("PPD_MAKE_AND_MODEL", 0));
        cgiCopyTemplateLang("choose-model.tmpl");
         cgiEndHTML();
       }
@@ -1508,7 +1570,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
 #ifdef HAVE_GSSAPI
     char               default_auth_type[255];
                                        /* DefaultAuthType value */
-    const char         *val;           /* Setting value */ 
+    const char         *val;           /* Setting value */
 #endif /* HAVE_GSSAPI */
 
 
@@ -1580,7 +1642,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
          strcat(local_protocols, "slp");
       }
 #endif /* HAVE_SLP */
-      
+
       if (cgiGetVariable("BROWSE_REMOTE_CUPS"))
        strcpy(remote_protocols, "cups");
       else
@@ -1833,7 +1895,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
       cgiSetVariable("ERROR", strerror(errno));
       cgiCopyTemplateLang("error.tmpl");
       cgiEndHTML();
-      
+
       perror(tempfile);
       return;
     }
@@ -1845,7 +1907,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
       cgiSetVariable("ERROR", strerror(errno));
       cgiCopyTemplateLang("error.tmpl");
       cgiEndHTML();
-      
+
       perror(tempfile);
       close(tempfd);
       unlink(tempfile);
@@ -2621,7 +2683,9 @@ do_menu(http_t *http)                     /* I - HTTP connection */
   if ((val = cupsGetOption("DefaultAuthType", num_settings,
                            settings)) != NULL && !strcasecmp(val, "Negotiate"))
     cgiSetVariable("KERBEROS", "CHECKED");
+  else
 #endif /* HAVE_GSSAPI */
+  cgiSetVariable("KERBEROS", "");
 
 #ifdef HAVE_DNSSD
   cgiSetVariable("HAVE_DNSSD", "1");
@@ -3233,11 +3297,16 @@ do_set_options(http_t *http,            /* I - HTTP connection */
     for (option = ppdFirstOption(ppd);
          option;
         option = ppdNextOption(ppd))
+    {
       if ((var = cgiGetVariable(option->keyword)) != NULL)
       {
        have_options = 1;
        ppdMarkOption(ppd, option->keyword, var);
+       fprintf(stderr, "DEBUG: Set %s to %s...\n", option->keyword, var);
       }
+      else
+        fprintf(stderr, "DEBUG: Didn't find %s...\n", option->keyword);
+    }
   }
 
   if (!have_options || ppdConflicts(ppd))
@@ -3258,7 +3327,7 @@ do_set_options(http_t *http,              /* I - HTTP connection */
           ((ppdattr = ppdFindAttr(ppd, "cupsCommands", NULL)) != NULL &&
            ppdattr->value && strstr(ppdattr->value, "AutoConfigure")))
         cgiSetVariable("HAVE_AUTOCONFIGURE", "YES");
-      else 
+      else
       {
         for (i = 0; i < ppd->num_filters; i ++)
          if (!strncmp(ppd->filters[i], "application/vnd.cups-postscript", 31))
@@ -3344,6 +3413,16 @@ do_set_options(http_t *http,             /* I - HTTP connection */
            {
              cgiSetArray("ckeyword", k, option->keyword);
              cgiSetArray("ckeytext", k, option->text);
+
+             for (m = 0; m < option->num_choices; m ++)
+             {
+               if (option->choices[m].marked)
+               {
+                 cgiSetArray("cchoice", k, option->choices[m].text);
+                 break;
+               }
+              }
+
              k ++;
            }
 
@@ -3362,7 +3441,7 @@ do_set_options(http_t *http,              /* I - HTTP connection */
          cgiSetVariable("GROUP", group->text);
 
        cgiCopyTemplateLang("option-header.tmpl");
-       
+
        for (j = group->num_options, option = group->options;
             j > 0;
             j --, option ++)
@@ -4006,7 +4085,7 @@ get_option_value(
 
     snprintf(buffer, bufsize, "Custom.%gx%g%s", width, length, uval);
   }
-  else if (cupsArrayCount(coption->params) == 1) 
+  else if (cupsArrayCount(coption->params) == 1)
   {
     cparam = ppdFirstCustomParam(coption);
     snprintf(keyword, sizeof(keyword), "%s.%s", coption->keyword, cparam->name);
index 5546d7ac5c12c3c3e7973987c91875f3ea45af22..52368ee3512a16ca44678caf74fe779d0334f56c 100644 (file)
 #  include "help-index.h"
 
 
+/*
+ * C++ magic...
+ */
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif /* __cplusplus */
+
 /*
  * Types...
  */
@@ -54,6 +62,7 @@ typedef struct cgi_file_s             /**** Uploaded file data ****/
 extern void            cgiAbort(const char *title, const char *stylesheet,
                                 const char *format, ...);
 extern int             cgiCheckVariables(const char *names);
+extern void            cgiClearVariables(void);
 extern void            *cgiCompileSearch(const char *query);
 extern void            cgiCopyTemplateFile(FILE *out, const char *tmpl);
 extern void            cgiCopyTemplateLang(const char *tmpl);
@@ -98,6 +107,10 @@ extern void         cgiStartMultipart(void);
 extern int             cgiSupportsMultipart(void);
 extern const char      *cgiText(const char *message);
 
+#  ifdef __cplusplus
+}
+#  endif /* __cplusplus */
+
 #endif /* !_CUPS_CGI_H_ */
 
 /*
index b7ea287a5a977a0ce35f8c3a40bae05bb0ca9ccc..7fa7eb80ed5495b67d1f1ef0e4bbb09a4e9c26bb 100644 (file)
@@ -72,6 +72,7 @@ main(int  argc,                               /* I - Number of command-line arguments */
   */
 
   cgiSetVariable("SECTION", "classes");
+  cgiSetVariable("REFRESH_PAGE", "");
 
  /*
   * See if we are displaying a printer or all classes...
index 0e6b0b1c73869898b8fb956b581499a59cba1866..d64cec02a945ab8a836f9eb0420c1c6c89f15ea4 100644 (file)
 #  include <cups/array.h>
 
 
+/*
+ * C++ magic...
+ */
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif /* __cplusplus */
+
 /*
  * Data structures...
  */
@@ -68,6 +76,10 @@ extern help_index_t  *helpSearchIndex(help_index_t *hi, const char *query,
                                         const char *filename);
 
 
+#  ifdef __cplusplus
+}
+#  endif /* __cplusplus */
+
 #endif /* !_CUPS_HELP_INDEX_H_ */
 
 /*
index 48ca5589536c6dbd99d3e75753df448ad8de2747..7c0b6b628afeb896a83abe26e49d79d40e781f63 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   Online help CGI for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 2007-2008 by Apple Inc.
+ *   Copyright 2007-2009 by Apple Inc.
  *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -63,6 +63,7 @@ main(int  argc,                               /* I - Number of command-line arguments */
   */
 
   cgiSetVariable("SECTION", "help");
+  cgiSetVariable("REFRESH_PAGE", "");
 
  /*
   * Load the help index...
@@ -102,7 +103,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
   */
 
   for (i = 0; i < argc; i ++)
-    fprintf(stderr, "argv[%d]=\"%s\"\n", i, argv[i]);
+    fprintf(stderr, "DEBUG: argv[%d]=\"%s\"\n", i, argv[i]);
 
   if ((helpfile = getenv("PATH_INFO")) != NULL)
   {
@@ -182,6 +183,12 @@ main(int  argc,                            /* I - Number of command-line arguments */
   topic = cgiGetVariable("TOPIC");
   si    = helpSearchIndex(hi, query, topic, helpfile);
 
+  cgiClearVariables();
+  if (query)
+    cgiSetVariable("QUERY", query);
+  if (topic)
+    cgiSetVariable("TOPIC", topic);
+
   fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n",
           query ? query : "(null)", topic ? topic : "(null)");
 
index 1e9f3364f16e18265bb2756d0683280f8cc83204..4c1eb3b958881c8b9ea0d422976adce9f5894357 100644 (file)
@@ -333,7 +333,7 @@ cgiMoveJobs(http_t     *http,               /* I - Connection to server */
                    NULL, job_uri);
       ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
                    "requested-attributes", NULL, "job-printer-uri");
-      
+
       if ((response = cupsDoRequest(http, request, "/")) != NULL)
       {
         if ((attr = ippFindAttribute(response, "job-printer-uri",
@@ -926,7 +926,7 @@ cgiRewriteURL(const char *uri,              /* I - Current URI */
                 ishttps ? "https" : "http",
                 userpass, hostname, port, resource);
       else
-       snprintf(url, urlsize, "%s://%s:%d%s", 
+       snprintf(url, urlsize, "%s://%s:%d%s",
                 ishttps ? "https" : "http",
                 hostname, port, resource);
     }
@@ -1398,7 +1398,9 @@ cgiShowJobs(http_t     *http,             /* I - Connection to server */
   int                  ascending,      /* Order of jobs (0 = descending) */
                        first,          /* First job to show */
                        count;          /* Number of jobs */
-  const char           *var;           /* Form variable */
+  const char           *var,           /* Form variable */
+                       *query,         /* Query string */
+                       *section;       /* Section in web interface */
   void                 *search;        /* Search data */
   char                 url[1024],      /* Printer URI */
                        val[1024];      /* Form variable */
@@ -1442,11 +1444,14 @@ cgiShowJobs(http_t     *http,           /* I - Connection to server */
     * Get a list of matching job objects.
     */
 
-    if ((var = cgiGetVariable("QUERY")) != NULL &&
+    if ((query = cgiGetVariable("QUERY")) != NULL &&
         !cgiGetVariable("CLEAR"))
-      search = cgiCompileSearch(var);
+      search = cgiCompileSearch(query);
     else
+    {
+      query  = NULL;
       search = NULL;
+    }
 
     jobs  = cgiGetIPPObjects(response, search);
     count = cupsArrayCount(jobs);
@@ -1471,16 +1476,27 @@ cgiShowJobs(http_t     *http,           /* I - Connection to server */
     if (first < 0)
       first = 0;
 
-    sprintf(val, "%d", count);
-    cgiSetVariable("TOTAL", val);
-
     if ((var = cgiGetVariable("ORDER")) != NULL)
       ascending = !strcasecmp(var, "asc");
     else
-    {
       ascending = !which_jobs || !strcasecmp(which_jobs, "not-completed");
-      cgiSetVariable("ORDER", ascending ? "asc" : "dec");
-    }
+
+    section = cgiGetVariable("SECTION");
+
+    cgiClearVariables();
+
+    if (query)
+      cgiSetVariable("QUERY", query);
+
+    cgiSetVariable("ORDER", ascending ? "asc" : "dec");
+
+    cgiSetVariable("SECTION", section);
+
+    sprintf(val, "%d", count);
+    cgiSetVariable("TOTAL", val);
+
+    if (which_jobs)
+      cgiSetVariable("WHICH_JOBS", which_jobs);
 
     if (ascending)
     {
@@ -1502,7 +1518,11 @@ cgiShowJobs(http_t     *http,            /* I - Connection to server */
     */
 
     if (dest)
-      snprintf(val, sizeof(val), "/%s/%s",  cgiGetVariable("SECTION"), dest);
+    {
+      snprintf(val, sizeof(val), "/%s/%s", section, dest);
+      cgiSetVariable("PRINTER_NAME", dest);
+      cgiSetVariable("PRINTER_URI_SUPPORTED", val);
+    }
     else
       strlcpy(val, "/jobs/", sizeof(val));
 
index 9af1dd7447dd3f829a16ee85c6084439905cf5b1..cf1f6e680d023030c6d6fc2f84d6f3328113de70 100644 (file)
@@ -57,6 +57,7 @@ main(int  argc,                               /* I - Number of command-line arguments */
   */
 
   cgiSetVariable("SECTION", "jobs");
+  cgiSetVariable("REFRESH_PAGE", "");
 
  /*
   * Connect to the HTTP server...
index 73e309e965a6a60568ce81a340210e2aaf3086e7..1997cdb1069b9f9b5059cea8427334881e7e189d 100644 (file)
@@ -1,4 +1,5 @@
 _cgiCheckVariables
+_cgiClearVariables
 _cgiCompileSearch
 _cgiCopyTemplateFile
 _cgiCopyTemplateLang
index e2fa42b8fe3c5018f9ff862b970eaa5a9129aaf7..f57a4251e6388edf67965353fce7623e79f11832 100644 (file)
@@ -73,6 +73,7 @@ main(int  argc,                               /* I - Number of command-line arguments */
   */
 
   cgiSetVariable("SECTION", "printers");
+  cgiSetVariable("REFRESH_PAGE", "");
 
  /*
   * See if we are displaying a printer or all printers...
index f20a7a950342ddd735cef0bd1e756dee7ba8032e..6e9cc5ec6827a81df5fe5c80f3a426cd46dd90d3 100644 (file)
@@ -119,7 +119,7 @@ cgiCopyTemplateLang(const char *tmpl)       /* I - Base filename */
       *locptr = '\0';                  /* Strip charset */
   }
 
-  fprintf(stderr, "DEBUG: lang=\"%s\", locale=\"%s\"...\n",
+  fprintf(stderr, "DEBUG2: lang=\"%s\", locale=\"%s\"...\n",
           lang ? lang : "(null)", locale);
 
  /*
@@ -675,6 +675,8 @@ cgi_puts(const char *s,                     /* I - String to output */
       fputs("&gt;", out);
     else if (*s == '\"')
       fputs("&quot;", out);
+    else if (*s == '\'')
+      fputs("&#39;", out);
     else if (*s == '&')
       fputs("&amp;", out);
     else
@@ -695,7 +697,7 @@ cgi_puturi(const char *s,           /* I - String to output */
 {
   while (*s)
   {
-    if (strchr("%&+ <>#=", *s) || *s & 128)
+    if (strchr("%@&+ <>#=", *s) || *s < ' ' || *s & 128)
       fprintf(out, "%%%02X", *s & 255);
     else
       putc(*s, out);
index 628ce8add577b80f624384b14ebfe4e74ad366df..1467bd878d4f5fd0b0089f53d1c4cac15d128301 100644 (file)
@@ -15,6 +15,7 @@
  * Contents:
  *
  *   cgiCheckVariables()        - Check for the presence of "required" variables.
+ *   cgiClearVariables()        - Clear all form variables.
  *   cgiGetArray()              - Get an element from a form array...
  *   cgiGetFile()               - Get the file (if any) that was submitted in the form.
  *   cgiGetSize()               - Get the size of a form array value.
@@ -134,6 +135,31 @@ cgiCheckVariables(const char *names)       /* I - Variables to look for */
 }
 
 
+/*
+ * 'cgiClearVariables()' - Clear all form variables.
+ */
+
+void
+cgiClearVariables(void)
+{
+  int          i, j;                   /* Looping vars */
+  _cgi_var_t   *v;                     /* Current variable */
+
+
+  for (v = form_vars, i = form_count; i > 0; v ++, i --)
+  {
+    _cupsStrFree(v->name);
+    for (j = 0; j < v->nvalues; j ++)
+      if (v->values[j])
+        _cupsStrFree(v->values[j]);
+  }
+
+  form_count = 0;
+
+  cgi_unlink_file();
+}
+
+
 /*
  * 'cgiGetArray()' - Get an element from a form array...
  */
@@ -151,7 +177,7 @@ cgiGetArray(const char *name,               /* I - Name of array variable */
   if (element < 0 || element >= var->nvalues)
     return (NULL);
 
-  return (var->values[element]);
+  return (_cupsStrRetain(var->values[element]));
 }
 
 
@@ -206,7 +232,7 @@ cgiGetVariable(const char *name)    /* I - Name of variable */
                  var->values[var->nvalues - 1]));
 #endif /* DEBUG */
 
-  return ((var == NULL) ? NULL : var->values[var->nvalues - 1]);
+  return ((var == NULL) ? NULL : _cupsStrRetain(var->values[var->nvalues - 1]));
 }
 
 
@@ -337,9 +363,9 @@ cgiSetArray(const char *name,               /* I - Name of variable */
       var->nvalues = element + 1;
     }
     else if (var->values[element])
-      free((char *)var->values[element]);
+      _cupsStrFree((char *)var->values[element]);
 
-    var->values[element] = strdup(value);
+    var->values[element] = _cupsStrAlloc(value);
   }
 }
 
@@ -384,7 +410,7 @@ cgiSetSize(const char *name,                /* I - Name of variable */
   {
     for (i = size; i < var->nvalues; i ++)
       if (var->values[i])
-        free((void *)(var->values[i]));
+        _cupsStrFree((void *)(var->values[i]));
   }
 
   var->nvalues = size;
@@ -417,9 +443,9 @@ cgiSetVariable(const char *name,    /* I - Name of variable */
   {
     for (i = 0; i < var->nvalues; i ++)
       if (var->values[i])
-        free((char *)var->values[i]);
+        _cupsStrFree((char *)var->values[i]);
 
-    var->values[0] = strdup(value);
+    var->values[0] = _cupsStrAlloc(value);
     var->nvalues   = 1;
   }
 }
@@ -465,10 +491,10 @@ cgi_add_variable(const char *name,        /* I - Variable name */
   if ((var->values = calloc(element + 1, sizeof(char *))) == NULL)
     return;
 
-  var->name            = strdup(name);
+  var->name            = _cupsStrAlloc(name);
   var->nvalues         = element + 1;
   var->avalues         = element + 1;
-  var->values[element] = strdup(value);
+  var->values[element] = _cupsStrAlloc(value);
 
   form_count ++;
 }
index 8cbba9d6287713f6c4a39401a7327999204ef3ce..a141b5c097ea6879a8f96ca9595d40916242433a 100644 (file)
@@ -46,6 +46,7 @@ application/x-csource         application/postscript          33      texttops
 application/x-perl             application/postscript          33      texttops
 application/x-shell            application/postscript          33      texttops
 text/plain                     application/postscript          33      texttops
+text/css                       application/postscript          33      texttops
 text/html                      application/postscript          33      texttops
 image/gif                      application/vnd.cups-postscript 66      imagetops
 image/png                      application/vnd.cups-postscript 66      imagetops
index fc2cd97ee429a1644c75215665b8d513ef9099a2..569baa59b75fa49970ffe8b5b5302c7aa6c59fff 100644 (file)
 #  include "versioning.h"
 
 
+/*
+ * C++ magic...
+ */
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif /* __cplusplus */
+
 /*
  * Constants...
  */
@@ -57,6 +65,10 @@ extern void          cupsBackendReport(const char *device_scheme,
                                          _CUPS_API_1_4;
                                          
 
+#  ifdef __cplusplus
+}
+#  endif /* __cplusplus */
+
 #endif /* !_CUPS_BACKEND_H_ */
 
 /*
index dcff52e5ef46b34187e762be3639fa348870c9f8..3b3f556c5e0955b91d522adb79f857a314d57dda 100644 (file)
@@ -583,9 +583,13 @@ ppdConflicts(ppd_file_t *ppd)              /* I - PPD to check */
   * Clear all conflicts...
   */
 
+  cupsArraySave(ppd->options);
+
   for (o = ppdFirstOption(ppd); o; o = ppdNextOption(ppd))
     o->conflicted = 0;
 
+  cupsArrayRestore(ppd->options);
+
  /*
   * Test for conflicts...
   */
@@ -641,7 +645,7 @@ ppdInstallableConflict(
   DEBUG_printf(("2ppdInstallableConflict(ppd=%p, option=\"%s\", choice=\"%s\")",
                 ppd, option, choice));
 
- /* 
+ /*
   * Range check input...
   */
 
index 54a393421b9643cdce7e45194063db621c8c0dd3..099f451d8248c778ade3db9238d87366529ca0d1 100644 (file)
@@ -33,7 +33,6 @@
  *                           server.
  *   appleCopyLocations()  - Copy the location history array.
  *   appleCopyNetwork()    - Get the network ID for the current location.
- *   appleGetDefault()     - Get the default printer for this location.
  *   appleGetPaperSize()   - Get the default paper size.
  *   appleGetPrinter()     - Get a printer from the history array.
  *   appleSetDefault()     - Set the default printer for this location.
@@ -549,7 +548,7 @@ cupsGetNamedDest(http_t     *http,  /* I - Connection to server or @code CUPS_HTT
 
   if (!cups_get_sdests(http, op, name, 0, &dest))
   {
-    if (op == CUPS_GET_DEFAULT)
+    if (op == CUPS_GET_DEFAULT || name)
       return (NULL);
 
    /*
@@ -1288,6 +1287,9 @@ appleUseLastPrinter(void)
   CFPropertyListRef    uselast;        /* Use last printer preference value */
 
 
+  if (getenv("CUPS_DISABLE_APPLE_DEFAULT"))
+    return (0);
+
   if ((uselast = CFPreferencesCopyAppValue(kUseLastPrinterAsCurrentPrinterKey,
                                            kPMPrintingPreferences)) != NULL)
   {
index f2f37a731db55c0eefb64ce67041cc8bba24960b..abd24130560d9a311d91e67e9ee3e631e1c1b7a6 100644 (file)
@@ -26,7 +26,6 @@
  *   httpClearCookie()    - Clear the cookie value(s).
  *   httpClearFields()    - Clear HTTP request fields.
  *   httpClose()          - Close an HTTP connection...
- *   httpConnect()        - Connect to a HTTP server.
  *   httpConnectEncrypt() - Connect to a HTTP server using encryption.
  *   _httpCreate()        - Create an unconnected HTTP connection.
  *   httpDelete()         - Send a DELETE request to the server.
@@ -721,7 +720,7 @@ httpGetField(http_t       *http,    /* I - Connection to server */
 {
   if (!http || field <= HTTP_FIELD_UNKNOWN || field >= HTTP_FIELD_MAX)
     return (NULL);
-  else if (field == HTTP_FIELD_AUTHORIZATION && 
+  else if (field == HTTP_FIELD_AUTHORIZATION &&
           http->field_authorization)
   {
    /*
@@ -1137,7 +1136,7 @@ httpGets(char   *line,                    /* I - Line to read into */
       http->activity = time(NULL);
 
       *lineptr = '\0';
-      
+
       DEBUG_printf(("3httpGets: Returning \"%s\"", line));
 
       return (line);
@@ -2283,7 +2282,7 @@ httpWait(http_t *http,                    /* I - Connection to server */
  *
  * @deprecated@
  */
+
 int                                    /* O - Number of bytes written */
 httpWrite(http_t     *http,            /* I - Connection to server */
           const char *buffer,          /* I - Buffer for data */
@@ -2298,7 +2297,7 @@ httpWrite(http_t     *http,               /* I - Connection to server */
  *
  * @since CUPS 1.2/Mac OS X 10.5@
  */
+
 ssize_t                                        /* O - Number of bytes written */
 httpWrite2(http_t     *http,           /* I - Connection to server */
            const char *buffer,         /* I - Buffer for data */
@@ -2456,7 +2455,7 @@ _httpWriteCDSA(
   else
   {
     *dataLength = 0;
-  
+
     if (errno == EAGAIN)
       result = errSSLWouldBlock;
     else
@@ -2517,7 +2516,7 @@ http_bio_ctrl(BIO  *h,                    /* I - BIO data */
        }
        else
          return (0);
-        
+
     case BIO_CTRL_DUP :
     case BIO_CTRL_FLUSH :
         return (1);
@@ -2719,7 +2718,36 @@ http_read_ssl(http_t *http,              /* I - Connection to server */
   return (SSL_read((SSL *)(http->tls), buf, len));
 
 #  elif defined(HAVE_GNUTLS)
-  return (gnutls_record_recv(((http_tls_t *)(http->tls))->session, buf, len));
+  ssize_t      result;                 /* Return value */
+
+
+  result = gnutls_record_recv(((http_tls_t *)(http->tls))->session, buf, len);
+
+  if (result < 0 && !errno)
+  {
+   /*
+    * Convert GNU TLS error to errno value...
+    */
+
+    switch (result)
+    {
+      case GNUTLS_E_INTERRUPTED :
+         errno = EINTR;
+         break;
+
+      case GNUTLS_E_AGAIN :
+          errno = EAGAIN;
+          break;
+
+      default :
+          errno = EPIPE;
+          break;
+    }
+
+    result = -1;
+  }
+
+  return ((int)result);
 
 #  elif defined(HAVE_CDSASSL)
   int          result;                 /* Return value */
@@ -2857,7 +2885,7 @@ http_send(http_t       *http,     /* I - Connection to server */
       DEBUG_printf(("9http_send: %s: %s", http_fields[i],
                     httpGetField(http, i)));
 
-      if (httpPrintf(http, "%s: %s\r\n", http_fields[i], 
+      if (httpPrintf(http, "%s: %s\r\n", http_fields[i],
                     httpGetField(http, i)) < 1)
       {
        http->status = HTTP_ERROR;
@@ -2896,15 +2924,15 @@ http_send(http_t       *http,   /* I - Connection to server */
   * The Kerberos and AuthRef authentication strings can only be used once...
   */
 
-  if (http->field_authorization && http->authstring && 
-      (!strncmp(http->authstring, "Negotiate", 9) || 
+  if (http->field_authorization && http->authstring &&
+      (!strncmp(http->authstring, "Negotiate", 9) ||
        !strncmp(http->authstring, "AuthRef", 7)))
   {
     http->_authstring[0] = '\0';
 
     if (http->authstring != http->_authstring)
       free(http->authstring);
-  
+
     http->authstring = http->_authstring;
   }
 
@@ -3220,7 +3248,7 @@ http_upgrade(http_t *http)                /* I - Connection to server */
 /*
  * 'http_write()' - Write a buffer to a HTTP connection.
  */
+
 static int                             /* O - Number of bytes written */
 http_write(http_t     *http,           /* I - Connection to server */
            const char *buffer,         /* I - Buffer for data */
@@ -3335,7 +3363,36 @@ http_write_ssl(http_t     *http, /* I - Connection to server */
   return (SSL_write((SSL *)(http->tls), buf, len));
 
 #  elif defined(HAVE_GNUTLS)
-  return (gnutls_record_send(((http_tls_t *)(http->tls))->session, buf, len));
+  ssize_t      result;                 /* Return value */
+
+  result = gnutls_record_send(((http_tls_t *)(http->tls))->session, buf, len);
+
+  if (result < 0 && !errno)
+  {
+   /*
+    * Convert GNU TLS error to errno value...
+    */
+
+    switch (result)
+    {
+      case GNUTLS_E_INTERRUPTED :
+         errno = EINTR;
+         break;
+
+      case GNUTLS_E_AGAIN :
+          errno = EAGAIN;
+          break;
+
+      default :
+          errno = EPIPE;
+          break;
+    }
+
+    result = -1;
+  }
+
+  return ((int)result);
+
 #  elif defined(HAVE_CDSASSL)
   int          result;                 /* Return value */
   OSStatus     error;                  /* Error info */
@@ -3358,11 +3415,11 @@ http_write_ssl(http_t     *http,        /* I - Connection to server */
        else
        {
          result = -1;
-         errno = EINTR;
+         errno  = EINTR;
        }
        break;
     default :
-       errno = EPIPE;
+       errno  = EPIPE;
        result = -1;
        break;
   }
index b14e1da5ecd179f2085b9a33c2626349e313a02a..573e8fc7c4193fbd489dfe2ec0287a073a28adba 100644 (file)
@@ -842,6 +842,8 @@ ppd_mark_option(ppd_file_t *ppd,    /* I - PPD file */
 
   if (!strcasecmp(option, "AP_D_InputSlot"))
   {
+    cupsArraySave(ppd->options);
+
     if ((o = ppdFindOption(ppd, "InputSlot")) != NULL)
     {
       key.option = o;
@@ -851,13 +853,21 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
         cupsArrayRemove(ppd->marked, oldc);
       }
     }
+
+    cupsArrayRestore(ppd->options);
   }
 
  /*
   * Check for custom options...
   */
 
-  if ((o = ppdFindOption(ppd, option)) == NULL)
+  cupsArraySave(ppd->options);
+
+  o = ppdFindOption(ppd, option);
+
+  cupsArrayRestore(ppd->options);
+
+  if (!o)
     return;
 
   loc = localeconv();
@@ -912,15 +922,15 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
               if (units)
              {
                if (!strcasecmp(units, "cm"))
-                 cparam->current.custom_points *= 72.0f / 2.54f;             
+                 cparam->current.custom_points *= 72.0f / 2.54f;
                else if (!strcasecmp(units, "mm"))
-                 cparam->current.custom_points *= 72.0f / 25.4f;             
+                 cparam->current.custom_points *= 72.0f / 25.4f;
                else if (!strcasecmp(units, "m"))
-                 cparam->current.custom_points *= 72.0f / 0.0254f;           
+                 cparam->current.custom_points *= 72.0f / 0.0254f;
                else if (!strcasecmp(units, "in"))
-                 cparam->current.custom_points *= 72.0f;             
+                 cparam->current.custom_points *= 72.0f;
                else if (!strcasecmp(units, "ft"))
-                 cparam->current.custom_points *= 12.0f * 72.0f;             
+                 cparam->current.custom_points *= 12.0f * 72.0f;
               }
              break;
 
@@ -1060,6 +1070,8 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
       * appropriate...
       */
 
+      cupsArraySave(ppd->options);
+
       if (!strcasecmp(option, "PageSize"))
       {
        if ((o = ppdFindOption(ppd, "PageRegion")) != NULL)
@@ -1084,6 +1096,8 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
           }
         }
       }
+
+      cupsArrayRestore(ppd->options);
     }
     else if (!strcasecmp(option, "InputSlot"))
     {
@@ -1091,6 +1105,8 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
       * Unmark ManualFeed option...
       */
 
+      cupsArraySave(ppd->options);
+
       if ((o = ppdFindOption(ppd, "ManualFeed")) != NULL)
       {
         key.option = o;
@@ -1100,6 +1116,8 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
           cupsArrayRemove(ppd->marked, oldc);
         }
       }
+
+      cupsArrayRestore(ppd->options);
     }
     else if (!strcasecmp(option, "ManualFeed") &&
             !strcasecmp(choice, "True"))
@@ -1108,6 +1126,8 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
       * Unmark InputSlot option...
       */
 
+      cupsArraySave(ppd->options);
+
       if ((o = ppdFindOption(ppd, "InputSlot")) != NULL)
       {
         key.option = o;
@@ -1117,6 +1137,8 @@ ppd_mark_option(ppd_file_t *ppd,  /* I - PPD file */
           cupsArrayRemove(ppd->marked, oldc);
         }
       }
+
+      cupsArrayRestore(ppd->options);
     }
   }
 
@@ -1197,7 +1219,7 @@ ppd_mark_size(ppd_file_t *ppd,            /* I - PPD file */
       return;
   }
   else
-    return;    
+    return;
 
  /*
   * Search the PPD file for a matching size...
index 2da53d5c001d6e7ce552fd7f0a5f7a624cd7192b..6fe2dc7768ec454c3392e07d32e08095e7478d7d 100644 (file)
@@ -352,11 +352,13 @@ ppdErrorString(ppd_status_t status)       /* I - PPD status */
                  _("Illegal option keyword string"),
                  _("Illegal translation string"),
                  _("Illegal whitespace character"),
-                 _("Bad custom parameter")
+                 _("Bad custom parameter"),
+                 _("Missing option keyword"),
+                 _("Bad value string")
                };
 
 
-  if (status < PPD_OK || status > PPD_ILLEGAL_WHITESPACE)
+  if (status < PPD_OK || status >= PPD_MAX_STATUS)
     return (_cupsLangString(cupsLangDefault(), _("Unknown")));
   else
     return (_cupsLangString(cupsLangDefault(), messages[status]));
@@ -1177,6 +1179,37 @@ ppdOpen2(cups_file_t *fp)                /* I - File to read from */
     }
     else if (!strcmp(keyword, "JobPatchFile"))
     {
+     /*
+      * CUPS STR #3421: Check for "*JobPatchFile: int: string"
+      */
+
+      if (isdigit(*string & 255))
+      {
+        for (sptr = string + 1; isdigit(*sptr & 255); sptr ++);
+
+        if (*sptr == ':')
+        {
+         /*
+          * Found "*JobPatchFile: int: string"...
+          */
+
+          cg->ppd_status = PPD_BAD_VALUE;
+
+         goto error;
+        }
+      }
+
+      if (!name[0])
+      {
+       /*
+        * Found "*JobPatchFile: string"...
+        */
+
+        cg->ppd_status = PPD_MISSING_OPTION_KEYWORD;
+
+       goto error;
+      }
+
       if (ppd->patches == NULL)
         ppd->patches = strdup(string);
       else
index e1fc70dec974bc723af9ff843af1bbd27826e20e..d0b8ec8f27e79d7029084c591d76e1b242079cf5 100644 (file)
@@ -115,7 +115,10 @@ typedef enum ppd_status_e          /**** Status Codes @since CUPS 1.1.19/Mac OS X 10.3@
   PPD_ILLEGAL_OPTION_KEYWORD,          /* Illegal option keyword string */
   PPD_ILLEGAL_TRANSLATION,             /* Illegal translation string */
   PPD_ILLEGAL_WHITESPACE,              /* Illegal whitespace character */
-  PPD_BAD_CUSTOM_PARAM                 /* Bad custom parameter */
+  PPD_BAD_CUSTOM_PARAM,                        /* Bad custom parameter */
+  PPD_MISSING_OPTION_KEYWORD,          /* Missing option keyword */
+  PPD_BAD_VALUE,                       /* Bad value string */
+  PPD_MAX_STATUS                       /* @private@ */
 } ppd_status_t;
 
 enum ppd_conform_e                     /**** Conformance Levels @since CUPS 1.1.19/Mac OS X 10.3@ ****/
index da3d2b84778a69536ab7797cc44584036d1a37a7..0ed4a744ac07d3f22a8c4491d64a18f2dd0e0eba 100644 (file)
@@ -116,6 +116,7 @@ cupsSideChannelRead(
   char         buffer[16388];          /* Message buffer */
   int          bytes;                  /* Bytes read */
   int          templen;                /* Data length from message */
+  int          nfds;                   /* Number of file descriptors */
 #ifdef HAVE_POLL
   struct pollfd        pfd;                    /* Poll structure for poll() */
 #else /* select() */
@@ -143,39 +144,31 @@ cupsSideChannelRead(
   pfd.fd     = CUPS_SC_FD;
   pfd.events = POLLIN;
 
-  if (timeout < 0.0)
-  {
-    if (poll(&pfd, 1, -1) < 1)
-      return (-1);
-  }
-  else if (poll(&pfd, 1, (long)(timeout * 1000)) < 1)
-    return (-1);
+  while ((nfds = poll(&pfd, 1, 
+                     timeout < 0.0 ? -1 : (long)(timeout * 1000))) < 0 &&
+        (errno == EINTR || errno == EAGAIN))
+    ;
 
 #else /* select() */
   FD_ZERO(&input_set);
   FD_SET(CUPS_SC_FD, &input_set);
 
-  if (timeout < 0.0)
-  {
-    if (select(CUPS_SC_FD + 1, &input_set, NULL, NULL, NULL) < 1)
-    {
-      DEBUG_printf(("1cupsSideChannelRead: Select error: %s", strerror(errno)));
-      return (-1);
-    }
-  }
-  else
-  {
-    stimeout.tv_sec  = (int)timeout;
-    stimeout.tv_usec = (int)(timeout * 1000000) % 1000000;
+  stimeout.tv_sec  = (int)timeout;
+  stimeout.tv_usec = (int)(timeout * 1000000) % 1000000;
+
+  while ((nfds = select(CUPS_SC_FD + 1, &input_set, NULL, NULL, 
+                       timeout < 0.0 ? NULL : &stimeout)) < 0 &&
+        (errno == EINTR || errno == EAGAIN))
+    ;
 
-    if (select(CUPS_SC_FD + 1, &input_set, NULL, NULL, &stimeout) < 1)
-    {
-      DEBUG_puts("1cupsSideChannelRead: Select timeout");
-      return (-1);
-    }
-  }
 #endif /* HAVE_POLL */
 
+  if  (nfds < 1)
+  {
+    *status = nfds==0 ? CUPS_SC_STATUS_TIMEOUT : CUPS_SC_STATUS_IO_ERROR;
+    return (-1);
+  }
+
  /*
   * Read a side-channel message for the format:
   *
index 664b915f8db59c58f7879bef196236b8ac697816..6a781bb710453f1aead83687613437971d7a0d00 100644 (file)
@@ -118,8 +118,8 @@ cupsTempFd(char *filename,          /* I - Pointer to buffer */
     * Format a string using the hex time values...
     */
 
-    snprintf(filename, len - 1, "%s/%08lx%05lx", tmpdir,
-             (unsigned long)curtime.tv_sec, (unsigned long)curtime.tv_usec);
+    snprintf(filename, len - 1, "%s/%05x%08lx", tmpdir, (unsigned)getpid(),
+             (unsigned long)(curtime.tv_sec + curtime.tv_usec + tries));
 #endif /* WIN32 */
 
    /*
index 0dab6506a6ff1ae9fad0bedcc0f80c368780babf..27a0dd00964a60f78d5fede6965e0626b48a0b43 100644 (file)
@@ -39,7 +39,7 @@
 *Throughput:   "1"
 *LandscapeOrientation: Plus90
 *TTRasterizer: Type42
-*cupsFilter: "application/vnd.cups-raster - 0"
+*cupsFilter: "application/vnd.cups-raster 0 -"
 *RequiresPageRegion All: True
 
 *% These constraints are used to test ppdConflicts() and cupsResolveConflicts()
index cbe49136f67c49a3163bc76e9c6918c046a1008e..87ba2c0ce508e03eaa0ba12d7e7e7ec7d96e978a 100644 (file)
@@ -1511,12 +1511,36 @@ cupsPrintFiles2(
       return (0);
     }
 
-    status = cupsStartDocument(http, name, job_id, docname, format,
-                               i == (num_files - 1));
+    do
+    {
+      cupsFileRewind(fp);
+
+      status = cupsStartDocument(http, name, job_id, docname, format,
+                                i == (num_files - 1));
 
-    while (status == HTTP_CONTINUE &&
-           (bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
-      status = cupsWriteRequestData(http, buffer, bytes);
+      while (status == HTTP_CONTINUE &&
+            (bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
+        status = cupsWriteRequestData(http, buffer, bytes);
+
+      if (status == HTTP_UNAUTHORIZED)
+      {
+        char   resource[1024];         /* Printer resource */
+
+        snprintf(resource, sizeof(resource), "/printers/%s", name);
+
+        if (!cupsDoAuthentication(http, "POST", resource))
+        {
+         if (httpReconnect(http))
+         {
+           _cupsSetError(IPP_SERVICE_UNAVAILABLE, NULL, 0);
+           return (0);
+         }
+        }
+       else
+         status = HTTP_AUTHORIZATION_CANCELED;
+      }
+    }
+    while (status == HTTP_UNAUTHORIZED);
 
     cupsFileClose(fp);
 
index 5b78171af8b7eea397af6f2c63b6a6d02017f102..8ec40856fe46c76c132dbbdcc772fd9b4d8ddae4 100644 (file)
@@ -27,7 +27,7 @@ P.example {
   font-style: italic;
   margin-left: 36pt;
 }
-  
+
 PRE.example {
   background: white;
   border: dotted thin #999999;
@@ -238,6 +238,10 @@ H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
   color: white;
 }
 
+TH.conflict {
+  text-align: right;
+}
+
 H1.title {
   display: none;
 }
index becebc2a09440dcdfdba8fd957dd6db114e27d09..80a421f53ad435e46ee502d3e3cd762618439c07 100644 (file)
@@ -16,7 +16,7 @@ SRC="/images/left.gif" WIDTH="64" HEIGHT="36" BORDER="0" ALT=""></A></TD>
 <TD CLASS="sel"><A HREF="/">&nbsp;&nbsp;Startseite&nbsp;&nbsp;</A></TD>
 <TD CLASS="unsel"><A HREF="/admin">&nbsp;&nbsp;Verwaltung&nbsp;&nbsp;</A></TD>
 <TD CLASS="unsel"><A HREF="/classes/">&nbsp;&nbsp;Klassen&nbsp;&nbsp;</A></TD>
-<TD CLASS="unsel"><A HREF="/help/">&nbsp;&nbsp;On-Line&nbsp;Hilfe&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel"><A HREF="/help/">&nbsp;&nbsp;Online&nbsp;Hilfe&nbsp;&nbsp;</A></TD>
 <TD CLASS="unsel"><A HREF="/jobs/">&nbsp;&nbsp;Auftr&auml;ge&nbsp;&nbsp;</A></TD>
 <TD CLASS="unsel"><A HREF="/printers/">&nbsp;&nbsp;Drucker&nbsp;&nbsp;</A></TD>
 <TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
@@ -31,7 +31,7 @@ AUTOSAVE="org.cups.help" RESULTS="20"></FORM></TD>
 
 <H1>Common UNIX Printing System @CUPS_VERSION@</H1>
 
-<P>CUPS ist das auf Standards basierte, Open-Source Drucker System, welches von 
+<P>CUPS ist das auf Standards basierte, Open-Source Drucker System, welches von
 <A HREF="http://www.apple.com/">Apple Inc.</A> f&uuml;r Mac OS<SUP>&reg;</SUP> X und
 andere UNIX<SUP>&reg;</SUP>-&auml;hnliche Betriebssysteme entwickelt wird.</P>
 
diff --git a/doc/id/index.html.in b/doc/id/index.html.in
new file mode 100644 (file)
index 0000000..ac6af5e
--- /dev/null
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+       <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+       <TITLE>Beranda - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+       <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+       <LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png">
+</HEAD>
+<BODY>
+<TABLE CLASS="page" SUMMARY="{title}">
+<TR><TD CLASS="body">
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR HEIGHT="36">
+<TD><A HREF="http://www.cups.org/" TARGET="_blank"><IMG
+SRC="/images/left.gif" WIDTH="64" HEIGHT="36" BORDER="0" ALT=""></A></TD>
+<TD CLASS="sel"><A HREF="/">&nbsp;&nbsp;Beranda&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel"><A HREF="/admin">&nbsp;&nbsp;Administrasi&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel"><A HREF="/classes/">&nbsp;&nbsp;Kelas&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel"><A HREF="/help/">&nbsp;&nbsp;Bantuan&nbsp;Langsung&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel"><A HREF="/jobs/">&nbsp;&nbsp;Tugas&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel"><A HREF="/printers/">&nbsp;&nbsp;Pencetak&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
+TYPE="SEARCH" NAME="QUERY" SIZE="20" PLACEHOLDER="Search Help"
+AUTOSAVE="org.cups.help" RESULTS="20"></FORM></TD>
+<TD><IMG SRC="/images/right.gif" WIDTH="4" HEIGHT="36" ALT=""></TD>
+</TR>
+</TABLE>
+
+<TABLE CLASS="indent" SUMMARY="">
+<TR><TD STYLE="padding-right: 20px;">
+
+<H1>CUPS @CUPS_VERSION@</H1>
+
+<P>CUPS adalah sistem pencetakan berstandar dan berkode sumber terbuka, dikembangkan oleh
+<A HREF="http://www.apple.com/">Apple Inc.</A> untuk Mac OS<SUP>&reg;</SUP> X dan sistem
+operasi serupa UNIX<SUP>&reg;</SUP> lainnya.</P>
+
+</TD>
+<TD><A HREF="http://www.cups.org/"><IMG SRC="images/cups-icon.png" WIDTH="128"
+HEIGHT="128" ALT="CUPS"></A></TD>
+</TR>
+</TABLE>
+
+<TABLE CLASS="indent" SUMMARY="">
+<TR><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-right: 20px;">
+
+<H2>CUPS bagi Pengguna</H2>
+
+<P><A HREF="help/overview.html">Ikhtisar CUPS</A></P>
+
+<P><A HREF="help/options.html">Opsi dan Pencetakan dari Baris Perintah</A></P>
+
+<P><A HREF="help/whatsnew.html">Apa yang Baru di CUPS 1.4</A></P>
+
+<P><A HREF="http://www.cups.org/newsgroups.php?gcups.general">Forum Pengguna</A></P>
+
+</TD><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-left: 20px; padding-right: 20px;">
+
+<H2>CUPS bagi Administrator</H2>
+
+<P><A HREF="admin">Menambah Pencetak dan Kelas</A></P>
+
+<P><A HREF="help/policies.html">Mengatur Kebijakan Operasi</A></P>
+
+<P><A HREF="help/accounting.html">Dasar Akunting Pencetak</A></P>
+
+<P><A HREF="help/security.html">Keamanan Server</A></P>
+
+<P><A HREF="help/kerberos.html">Menggunakan Otentikasi Kerberos</A></P>
+
+<P><A HREF="help/network.html">Menggunakan Pencetak di Jaringan</A></P>
+
+<P><A HREF="help/ref-cupsd-conf.html">Referensi cupsd.conf</A></P>
+
+<P><A HREF="http://www.cups.org/ppd.php">Mencari Penggerak Pencetak</A></P>
+
+</TD><TD VALIGN="top" STYLE="padding-left: 20px;">
+
+<H2>CUPS bagi Pengembang</H2>
+
+<P><A HREF="help/api-overview.html">Pengenalan untuk Pemrograman CUPS</A></P>
+
+<P><A HREF="help/api-cups.html">API di CUPS</A></P>
+
+<P><A HREF="help/api-filter.html">Penyaring dan Pemrograman Balik (<I>Backend Programming</I>)</A></P>
+
+<P><A HREF="help/api-httpipp.html">API di HTTP dan IPP</A></P>
+
+<P><A HREF="help/api-ppd.html">API di PPD</A></P>
+
+<P><A HREF="help/api-raster.html">API di Raster</A></P>
+
+<P><A HREF="help/ref-ppdcfile.html">Referensi Kompiler Berkas Penggerak PPD</A></P>
+
+<P><A HREF="http://www.cups.org/newsgroups.php?gcups.development">Forum Pengembang</A></P>
+
+</TD></TR>
+</TABLE>
+
+</TD></TR>
+<TR><TD>&nbsp;</TD></TR>
+<TR><TD CLASS="trailer">CUPS dan logo CUPS logo adalah merek dagang dari
+<A HREF="http://www.apple.com">Apple Inc.</A> Hak cipta CUPS pada 2007-2009 Apple
+Inc. Semua hak terpelihara.</TD></TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/locale/cups_id.po b/locale/cups_id.po
new file mode 100644 (file)
index 0000000..a8b8c76
--- /dev/null
@@ -0,0 +1,7095 @@
+# translation of cups_id.po to Bahasa Indonesia
+#
+# "$Id$"
+#
+#   Message catalog template for the Common UNIX Printing System (CUPS).
+#
+#   Copyright 2007 by Apple Inc.
+#   Copyright 2005-2007 by Easy Software Products.
+#
+#   These coded instructions, statements, and computer programs are the
+#   property of Apple Inc. and are protected by Federal copyright
+#   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+#   which should have been included with this file.  If this file is
+#   file is missing or damaged, see the license at "http://www.cups.org/".
+#
+# Citra Paska <dirgitadevina@yahoo.co.id>, 2008, 2009.
+
+#
+# Notes for Translators:
+#
+# The following prefixes MUST NOT be translated: "ALERT:", "CRIT:", "INFO:",
+# "NOTICE:", and "WARNING:".
+#
+# The "checkpo" program located in the "locale" source directory can be used
+# to verify that your translations do not introduce formatting errors or other
+# problems.  Run with:
+#
+#    cd locale
+#    ./checkpo cups_LL.po
+#
+# where "LL" is your locale.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cups_id\n"
+"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
+"POT-Creation-Date: 2009-06-18 15:43-0700\n"
+"PO-Revision-Date: 2009-09-29 05:17+0700\n"
+"Last-Translator: Citra Paska <dirgitadevina@yahoo.co.id>\n"
+"Language-Team: Bahasa Indonesia\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: systemv/lpstat.c:1848 systemv/lpstat.c:1961
+msgid "\t\t(all)\n"
+msgstr "\t\t(semua)\n"
+
+#: systemv/lpstat.c:1851 systemv/lpstat.c:1854 systemv/lpstat.c:1964
+#: systemv/lpstat.c:1967
+msgid "\t\t(none)\n"
+msgstr "\t\t(nihil)\n"
+
+#: berkeley/lpc.c:438
+#, c-format
+msgid "\t%d entries\n"
+msgstr "\t%d entri\n"
+
+#: systemv/lpstat.c:1829 systemv/lpstat.c:1942
+msgid "\tAfter fault: continue\n"
+msgstr "\tUsai kesalahan: lanjut\n"
+
+#: systemv/lpstat.c:1461 systemv/lpstat.c:1795 systemv/lpstat.c:1908
+msgid "\tAlerts:"
+msgstr "\tPeringatan:"
+
+#: systemv/lpstat.c:1852 systemv/lpstat.c:1965
+msgid "\tBanner required\n"
+msgstr "\tBanner diperlukan\n"
+
+#: systemv/lpstat.c:1853 systemv/lpstat.c:1966
+msgid "\tCharset sets:\n"
+msgstr "\tSet karakter:\n"
+
+#: systemv/lpstat.c:1818 systemv/lpstat.c:1931
+msgid "\tConnection: direct\n"
+msgstr "\tKoneksi: langsung\n"
+
+#: systemv/lpstat.c:1809 systemv/lpstat.c:1922
+msgid "\tConnection: remote\n"
+msgstr "\tKoneksi: jarak jauh\n"
+
+#: systemv/lpstat.c:1856 systemv/lpstat.c:1969
+msgid "\tDefault page size:\n"
+msgstr "\tUkuran halaman utama:\n"
+
+#: systemv/lpstat.c:1855 systemv/lpstat.c:1968
+msgid "\tDefault pitch:\n"
+msgstr "\tTiti utama:\n"
+
+#: systemv/lpstat.c:1857 systemv/lpstat.c:1970
+msgid "\tDefault port settings:\n"
+msgstr "\tPengaturan port utama:\n"
+
+#: systemv/lpstat.c:1790 systemv/lpstat.c:1903
+#, c-format
+msgid "\tDescription: %s\n"
+msgstr "\tDeskripsi: %s\n"
+
+#: systemv/lpstat.c:1784 systemv/lpstat.c:1897
+msgid ""
+"\tForm mounted:\n"
+"\tContent types: any\n"
+"\tPrinter types: unknown\n"
+msgstr ""
+"\tFormulir yang diakuisisi:\n"
+"\tJenis isi: apa saja\n"
+"\tJenis pencetak: tak dikenal\n"
+
+#: systemv/lpstat.c:1850 systemv/lpstat.c:1963
+msgid "\tForms allowed:\n"
+msgstr "\tFormulir yang diperbolehkan:\n"
+
+#: systemv/lpstat.c:1813 systemv/lpstat.c:1926
+#, c-format
+msgid "\tInterface: %s.ppd\n"
+msgstr "\tAntarmuka: %s.ppd\n"
+
+#: systemv/lpstat.c:1822 systemv/lpstat.c:1935
+#, c-format
+msgid "\tInterface: %s/interfaces/%s\n"
+msgstr "\tAntarmuka: %s/interfaces/%s\n"
+
+#: systemv/lpstat.c:1826 systemv/lpstat.c:1939
+#, c-format
+msgid "\tInterface: %s/ppd/%s.ppd\n"
+msgstr "\tAntarmuka: %s/ppd/%s.ppd\n"
+
+#: systemv/lpstat.c:1804 systemv/lpstat.c:1917
+#, c-format
+msgid "\tLocation: %s\n"
+msgstr "\tLokasi: %s\n"
+
+#: systemv/lpstat.c:1828 systemv/lpstat.c:1941
+msgid "\tOn fault: no alert\n"
+msgstr "\tSaat gagal: tanpa peringatan\n"
+
+#: systemv/lpstat.c:1833 systemv/lpstat.c:1847 systemv/lpstat.c:1946
+#: systemv/lpstat.c:1960
+msgid "\tUsers allowed:\n"
+msgstr "\tPengguna yang diperbolehkan:\n"
+
+#: systemv/lpstat.c:1840 systemv/lpstat.c:1953
+msgid "\tUsers denied:\n"
+msgstr "\tPengguna yang dilarang:\n"
+
+#: berkeley/lpc.c:440
+msgid "\tdaemon present\n"
+msgstr "\tjurik hadir\n"
+
+#: berkeley/lpc.c:436
+msgid "\tno entries\n"
+msgstr "\ttidak ada entri\n"
+
+#: berkeley/lpc.c:408 berkeley/lpc.c:420
+#, c-format
+msgid "\tprinter is on device '%s' speed -1\n"
+msgstr "\tpencetak pada perangkat '%s' kecepatan -1\n"
+
+#: berkeley/lpc.c:433
+msgid "\tprinting is disabled\n"
+msgstr "\tproses cetak dinonaktifkan\n"
+
+#: berkeley/lpc.c:431
+msgid "\tprinting is enabled\n"
+msgstr "\tproses cetak diaktifkan\n"
+
+#: systemv/lpstat.c:1467
+#, c-format
+msgid "\tqueued for %s\n"
+msgstr "\tantrian untuk %s\n"
+
+#: berkeley/lpc.c:428
+msgid "\tqueuing is disabled\n"
+msgstr "\tantrian dinonaktifkan\n"
+
+#: berkeley/lpc.c:426
+msgid "\tqueuing is enabled\n"
+msgstr "\tantrian diaktifkan\n"
+
+#: systemv/lpstat.c:1777 systemv/lpstat.c:1890
+msgid "\treason unknown\n"
+msgstr "\talasan tak dikenal\n"
+
+#: systemv/cupstestppd.c:551
+msgid ""
+"\n"
+"    DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr ""
+"\n"
+"    DETIL HASIL KECOCOKAN TES\n"
+
+#: systemv/cupstestppd.c:512 systemv/cupstestppd.c:516
+msgid "                REF: Page 15, section 3.1.\n"
+msgstr "                REF: Halaman 15, seksi 3.1.\n"
+
+#: systemv/cupstestppd.c:508
+msgid "                REF: Page 15, section 3.2.\n"
+msgstr "                REF: Halaman 15, seksi 3.2.\n"
+
+#: systemv/cupstestppd.c:524
+msgid "                REF: Page 19, section 3.3.\n"
+msgstr "                REF: Halaman 19, seksi 3.3.\n"
+
+#: systemv/cupstestppd.c:486
+msgid "                REF: Page 20, section 3.4.\n"
+msgstr "                REF: Halaman 20, seksi 3.4.\n"
+
+#: systemv/cupstestppd.c:528
+msgid "                REF: Page 27, section 3.5.\n"
+msgstr "                REF: Halaman 27, seksi 3.5.\n"
+
+#: systemv/cupstestppd.c:482
+msgid "                REF: Page 42, section 5.2.\n"
+msgstr "                REF: Halaman 42, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:520
+msgid "                REF: Pages 16-17, section 3.2.\n"
+msgstr "                REF: Halaman 16-17, seksi 3.2.\n"
+
+#: systemv/cupstestppd.c:496
+msgid "                REF: Pages 42-45, section 5.2.\n"
+msgstr "                REF: Halaman 42-45, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:491
+msgid "                REF: Pages 45-46, section 5.2.\n"
+msgstr "                REF: Halaman 45-46, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:500
+msgid "                REF: Pages 48-49, section 5.2.\n"
+msgstr "                REF: Halaman 48-49, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:504
+msgid "                REF: Pages 52-54, section 5.2.\n"
+msgstr "                REF: Halaman 52-54, seksi 5.2.\n"
+
+#: berkeley/lpq.c:546
+#, c-format
+msgid "        %-39.39s %.0f bytes\n"
+msgstr "        %-39.39s %.0f bita\n"
+
+#: systemv/cupstestppd.c:668
+#, c-format
+msgid "        PASS    Default%s\n"
+msgstr "        PASS    Default%s\n"
+
+#: systemv/cupstestppd.c:605
+msgid "        PASS    DefaultImageableArea\n"
+msgstr "        PASS    DefaultImageableArea\n"
+
+#: systemv/cupstestppd.c:639
+msgid "        PASS    DefaultPaperDimension\n"
+msgstr "        PASS    DefaultPaperDimension\n"
+
+#: systemv/cupstestppd.c:710
+msgid "        PASS    FileVersion\n"
+msgstr "        PASS    FileVersion\n"
+
+#: systemv/cupstestppd.c:754
+msgid "        PASS    FormatVersion\n"
+msgstr "        PASS    FormatVersion\n"
+
+#: systemv/cupstestppd.c:774
+msgid "        PASS    LanguageEncoding\n"
+msgstr "        PASS    LanguageEncoding\n"
+
+#: systemv/cupstestppd.c:794
+msgid "        PASS    LanguageVersion\n"
+msgstr "        PASS    LanguageVersion\n"
+
+#: systemv/cupstestppd.c:846
+msgid "        PASS    Manufacturer\n"
+msgstr "        PASS    Manufacturer\n"
+
+#: systemv/cupstestppd.c:886
+msgid "        PASS    ModelName\n"
+msgstr "        PASS    ModelName\n"
+
+#: systemv/cupstestppd.c:906
+msgid "        PASS    NickName\n"
+msgstr "        PASS    NickName\n"
+
+#: systemv/cupstestppd.c:966
+msgid "        PASS    PCFileName\n"
+msgstr "        PASS    PCFileName\n"
+
+#: systemv/cupstestppd.c:1041
+msgid "        PASS    PSVersion\n"
+msgstr "        PASS    PSVersion\n"
+
+#: systemv/cupstestppd.c:946
+msgid "        PASS    PageRegion\n"
+msgstr "        PASS    PageRegion\n"
+
+#: systemv/cupstestppd.c:926
+msgid "        PASS    PageSize\n"
+msgstr "        PASS    PageSize\n"
+
+#: systemv/cupstestppd.c:1001
+msgid "        PASS    Product\n"
+msgstr "        PASS    Product\n"
+
+#: systemv/cupstestppd.c:1076
+msgid "        PASS    ShortNickName\n"
+msgstr "        PASS    ShortNickName\n"
+
+#: systemv/cupstestppd.c:3416
+#, c-format
+msgid ""
+"        WARN    \"%s %s\" conflicts with \"%s %s\"\n"
+"                (constraint=\"%s %s %s %s\")\n"
+msgstr ""
+"        WARN    \"%s %s\" konflik dengan \"%s %s\"\n"
+"                (constraint=\"%s %s %s %s\")\n"
+
+#: systemv/cupstestppd.c:1449
+#, c-format
+msgid "        WARN    %s has no corresponding options!\n"
+msgstr "        WARN    %s tidak memiliki opsi yang berkorespondensi!\n"
+
+#: systemv/cupstestppd.c:1557
+#, c-format
+msgid ""
+"        WARN    %s shares a common prefix with %s\n"
+"                REF: Page 15, section 3.2.\n"
+msgstr ""
+"        WARN    %s berbagi prefiks umum dengan %s\n"
+"                REF: Halaman 15, seksi 3.2.\n"
+
+#: systemv/cupstestppd.c:1458
+msgid "        WARN    Default choices conflicting!\n"
+msgstr "        WARN    Pilihan utama mengalam konflik!\n"
+
+#: systemv/cupstestppd.c:1420
+#, c-format
+msgid ""
+"        WARN    Duplex option keyword %s may not work as expected and should "
+"be named Duplex!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+"        WARN    Opsi kata kunci Duplex %s mungkin tidak bekerja seperti yang diharapkan dan seharusnya dinamai Duplex!\n"
+"                REF: Halaman 122, seksi 5.17\n"
+
+#: systemv/cupstestppd.c:1819
+msgid "        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr "        WARN    Berkas memiliki campuran CR, LF, dan CR LF pada akhir baris!\n"
+
+#: systemv/cupstestppd.c:1474
+msgid ""
+"        WARN    LanguageEncoding required by PPD 4.3 spec.\n"
+"                REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+"        WARN    LanguageEncoding diperlukan oleh spesifikasi PPD 4.3.\n"
+"                REF: Halaman 56-57, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1801
+#, c-format
+msgid "        WARN    Line %d only contains whitespace!\n"
+msgstr "        WARN    Baris %d hanya mengandung spasi!\n"
+
+#: systemv/cupstestppd.c:1482
+msgid ""
+"        WARN    Manufacturer required by PPD 4.3 spec.\n"
+"                REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+"        WARN    Manufacturer diperlukan oleh spesifikasi PPD 4.3.\n"
+"                REF: Halaman 58-59, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1824
+msgid ""
+"        WARN    Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr "        WARN    Berkas PPD non-Windows seharusnya hanya berakhir baris LF, bukan CR LF!\n"
+
+#: systemv/cupstestppd.c:1466
+#, c-format
+msgid ""
+"        WARN    Obsolete PPD version %.1f!\n"
+"                REF: Page 42, section 5.2.\n"
+msgstr ""
+"        WARN    PPD versi %.1f telah usang!\n"
+"                REF: Halaman 42, seksi 5.2.\n"
+
+#: systemv/cupstestppd.c:1495
+msgid ""
+"        WARN    PCFileName longer than 8.3 in violation of PPD spec.\n"
+"                REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+"        WARN    PCFileName lebih panjang dari 8.3 melanggar spesifikasi PPD.\n"
+"                REF: Halaman 61-62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1529
+msgid ""
+"        WARN    Protocols contains PJL but JCL attributes are not set.\n"
+"                REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+"        WARN    Protocols mengandung PJL tetapi atribut JCL tidak diset.\n"
+"                REF: Halaman 78-79, seksi 5.7.\n"
+
+#: systemv/cupstestppd.c:1520
+msgid ""
+"        WARN    Protocols contains both PJL and BCP; expected TBCP.\n"
+"                REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+"        WARN    Protocols mengandung PJL dan BCP; diharapkan TBCP.\n"
+"                REF: Halaman 78-79, seksi 5.7.\n"
+
+#: systemv/cupstestppd.c:1503
+msgid ""
+"        WARN    ShortNickName required by PPD 4.3 spec.\n"
+"                REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+"        WARN    ShortNickName diperlukan oleh spesifikasi PPD 4.3.\n"
+"                REF: Halaman 64-65, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:2307
+#, c-format
+msgid "      %s  %s %s does not exist!\n"
+msgstr "      %s  %s %s tidak ada!\n"
+
+#: systemv/cupstestppd.c:3571
+#, c-format
+msgid "      %s  %s file \"%s\" has the wrong capitalization!\n"
+msgstr "      %s  %s berkas \"%s\" memiliki kapitalisasi yang salah!\n"
+
+#: systemv/cupstestppd.c:2377
+#, c-format
+msgid ""
+"      %s  Bad %s choice %s!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+
+#: systemv/cupstestppd.c:3131
+#, c-format
+msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s!\n"
+msgstr "      %s  UTF-8 jelek \"%s\" string translasi untuk opsi %s!\n"
+
+#: systemv/cupstestppd.c:3177 systemv/cupstestppd.c:3226
+#: systemv/cupstestppd.c:3265
+#, c-format
+msgid "      %s  Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
+msgstr "      %s  UTF-8 jelek \"%s\" string translasi untuk opsi %s, pilihan %s!\n"
+
+#: systemv/cupstestppd.c:2429
+#, c-format
+msgid "      %s  Bad cupsFilter value \"%s\"!\n"
+msgstr "      %s  Nilai cupsFilter jelek \"%s\"!\n"
+
+#: systemv/cupstestppd.c:2794
+#, c-format
+msgid "      %s  Bad cupsICCProfile %s!\n"
+msgstr "      %s  cupsICCProfile jelek \"%s\"!\n"
+
+#: systemv/cupstestppd.c:2500
+#, c-format
+msgid "      %s  Bad cupsPreFilter value \"%s\"!\n"
+msgstr "      %s  Nilai cupsPreFilter jelek \"%s\"!\n"
+
+#: systemv/cupstestppd.c:1897
+#, c-format
+msgid "      %s  Bad cupsUIConstraints %s: \"%s\"!\n"
+msgstr "      %s  cupsUIConstraints jelek %s: \"%s\"!\n"
+
+#: systemv/cupstestppd.c:3081
+#, c-format
+msgid "      %s  Bad language \"%s\"!\n"
+msgstr "      %s  Bahasa jelek \"%s\"!\n"
+
+#: systemv/cupstestppd.c:2484 systemv/cupstestppd.c:2556
+#: systemv/cupstestppd.c:2594 systemv/cupstestppd.c:2632
+#: systemv/cupstestppd.c:2670 systemv/cupstestppd.c:2708
+#, c-format
+msgid "      %s  Bad spelling of %s - should be %s!\n"
+msgstr "      %s  Ejaan dari %s jelek - seharusnya %s!\n"
+
+#: systemv/cupstestppd.c:2738
+#, c-format
+msgid "      %s  Cannot provide both APScanAppPath and APScanAppBundleID!\n"
+msgstr "      %s  Tidak dapat menyediakan APScanAppPath dan APScanAppBundleID!\n"
+
+#: systemv/cupstestppd.c:1878
+#, c-format
+msgid "      %s  Empty cupsUIConstraints %s!\n"
+msgstr "      %s  cupsUIConstraints %s kosong!\n"
+
+#: systemv/cupstestppd.c:3117
+#, c-format
+msgid "      %s  Missing \"%s\" translation string for option %s!\n"
+msgstr "      %s  Kehilangan \"%s\" string translasi untuk opsi %s!\n"
+
+#: systemv/cupstestppd.c:3209 systemv/cupstestppd.c:3249
+#, c-format
+msgid "      %s  Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr "      %s  Kehilangan \"%s\" string translasi untuk opsi %s, pilihan %s!\n"
+
+#: systemv/cupstestppd.c:2569
+#, c-format
+msgid "      %s  Missing APDialogExtension file \"%s\"\n"
+msgstr "      %s  Kehilangan berkas APDialogExtension \"%s\"\n"
+
+#: systemv/cupstestppd.c:2607
+#, c-format
+msgid "      %s  Missing APPrinterIconPath file \"%s\"\n"
+msgstr "      %s  Kehilangan berkas APPrinterIconPath \"%s\"\n"
+
+#: systemv/cupstestppd.c:2645
+#, c-format
+msgid "      %s  Missing APPrinterLowInkTool file \"%s\"\n"
+msgstr "      %s  Kehilangan berkas APPrinterLowInkTool \"%s\"\n"
+
+#: systemv/cupstestppd.c:2683
+#, c-format
+msgid "      %s  Missing APPrinterUtilityPath file \"%s\"\n"
+msgstr "      %s  Kehilangan berkas APPrinterUtilityPath \"%s\"\n"
+
+#: systemv/cupstestppd.c:2721
+#, c-format
+msgid "      %s  Missing APScanAppPath file \"%s\"\n"
+msgstr "      %s  Kehilangan berkas APScanAppPath \"%s\"\n"
+
+#: systemv/cupstestppd.c:2926
+#, c-format
+msgid ""
+"      %s  Missing REQUIRED PageRegion option!\n"
+"                REF: Page 100, section 5.14.\n"
+msgstr ""
+"      %s  Kehilangan opsi PageRegion yang DIPERLUKAN!\n"
+"                REF: Halaman 100, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:2911
+#, c-format
+msgid ""
+"      %s  Missing REQUIRED PageSize option!\n"
+"                REF: Page 99, section 5.14.\n"
+msgstr ""
+"      %s  Kehilangan opsi PageSize yang DIPERLUKAN!\n"
+"                REF: Halaman 99, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:2088 systemv/cupstestppd.c:2129
+#, c-format
+msgid "      %s  Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"!\n"
+msgstr "      %s  Kehilangan pilihan *%s %s dalam UIConstraints \"*%s %s *%s %s\"!\n"
+
+#: systemv/cupstestppd.c:1983
+#, c-format
+msgid "      %s  Missing choice *%s %s in cupsUIConstraints %s: \"%s\"!\n"
+msgstr "      %s  Kehilangan pilihan *%s %s dalam cupsUIConstraints %s: \"%s\"!\n"
+
+#: systemv/cupstestppd.c:2458
+#, c-format
+msgid "      %s  Missing cupsFilter file \"%s\"\n"
+msgstr "      %s  Kehilangan berkas cupsFilter \"%s\"\n"
+
+#: systemv/cupstestppd.c:2828
+#, c-format
+msgid "      %s  Missing cupsICCProfile file \"%s\"!\n"
+msgstr "      %s  Kehilangan berkas cupsICCProfile \"%s\"!\n"
+
+#: systemv/cupstestppd.c:2529
+#, c-format
+msgid "      %s  Missing cupsPreFilter file \"%s\"\n"
+msgstr "      %s  Kehilangan berkas cupsPreFilter \"%s\"\n"
+
+#: systemv/cupstestppd.c:1915
+#, c-format
+msgid "      %s  Missing cupsUIResolver %s!\n"
+msgstr "      %s  Kehilangan cupsUIResolver %s!\n"
+
+#: systemv/cupstestppd.c:2074 systemv/cupstestppd.c:2115
+#, c-format
+msgid "      %s  Missing option %s in UIConstraints \"*%s %s *%s %s\"!\n"
+msgstr "      %s  Kehilangan opsi %s dalam UIConstraints \"*%s %s *%s %s\"!\n"
+
+#: systemv/cupstestppd.c:1967
+#, c-format
+msgid "      %s  Missing option %s in cupsUIConstraints %s: \"%s\"!\n"
+msgstr "      %s  Kehilangan opsi %s dalam cupsUIConstraints %s: \"%s\"!\n"
+
+#: systemv/cupstestppd.c:3303
+#, c-format
+msgid "      %s  No base translation \"%s\" is included in file!\n"
+msgstr "      %s  Tidak ada basis translasi \"%s\" yang disertakan pada berkas!\n"
+
+#: systemv/cupstestppd.c:2989
+#, c-format
+msgid ""
+"      %s  Non-standard size name \"%s\"!\n"
+"                REF: Page 187, section B.2.\n"
+msgstr ""
+"      %s  Nama ukuran nonstandar \"%s\"!\n"
+"                REF: Halaman 187, seksi B.2.\n"
+
+#: systemv/cupstestppd.c:2353
+#, c-format
+msgid ""
+"      %s  REQUIRED %s does not define choice None!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+
+#: systemv/cupstestppd.c:3006 systemv/cupstestppd.c:3020
+#, c-format
+msgid "      %s  Size \"%s\" defined for %s but not for %s!\n"
+msgstr "      %s  Ukuran \"%s\" ditentukan untuk %s bukan untuk %s!\n"
+
+#: systemv/cupstestppd.c:2964
+#, c-format
+msgid "      %s  Size \"%s\" has unexpected dimensions (%gx%g)!\n"
+msgstr "      %s  Ukuran \"%s\" memiliki dimensi yang tak diharapkan (%gx%g)!\n"
+
+#: systemv/cupstestppd.c:2856
+#, c-format
+msgid "      %s  cupsICCProfile %s hash value collides with %s!\n"
+msgstr ""
+
+#: systemv/cupstestppd.c:2038
+#, c-format
+msgid "      %s  cupsUIResolver %s causes a loop!\n"
+msgstr ""
+
+#: systemv/cupstestppd.c:2020
+#, c-format
+msgid "      %s  cupsUIResolver %s does not list at least two different options!\n"
+msgstr "      %s  cupsUIResolver %s tidak menyediakan setidaknya dua opsi berbeda!\n"
+
+#: systemv/cupstestppd.c:2238
+#, c-format
+msgid "      **FAIL**  %s choice names %s and %s differ only by case!\n"
+msgstr "      **FAIL**  %s nama yang dipilih %s dan %s berbeda hanya pada besar/kecilnya huruf!\n"
+
+#: systemv/cupstestppd.c:1243
+#, c-format
+msgid ""
+"      **FAIL**  %s must be 1284DeviceID!\n"
+"               REF: Page 72, section 5.5\n"
+msgstr ""
+"      **FAIL**  %s seharusnya 1284DeviceID!\n"
+"                REF: Halaman 72, seksi 5.5\n"
+
+#: systemv/cupstestppd.c:659
+#, c-format
+msgid ""
+"      **FAIL**  BAD Default%s %s\n"
+"                REF: Page 40, section 4.5.\n"
+msgstr ""
+"      **FAIL**  Default%s %s JELEK\n"
+"                REF: Halaman 40, seksi 4.5.\n"
+
+#: systemv/cupstestppd.c:595
+#, c-format
+msgid ""
+"      **FAIL**  BAD DefaultImageableArea %s!\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **FAIL**  DefaultImageableArea %s JELEK!\n"
+"                REF: Halaman 102, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:631
+#, c-format
+msgid ""
+"      **FAIL**  BAD DefaultPaperDimension %s!\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **FAIL**  DefaultPaperDimension %s JELEK!\n"
+"                REF: Halaman 103, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:1102
+msgid ""
+"      **FAIL**  BAD JobPatchFile attribute in file\n"
+"                REF: Page 24, section 3.4.\n"
+msgstr ""
+"      **FAIL**  Atribut JobPatchFile JELEK dalam berkas\n"
+"                REF: Halaman 24, seksi 3.4.\n"
+
+#: systemv/cupstestppd.c:822
+msgid ""
+"      **FAIL**  BAD Manufacturer (should be \"HP\")\n"
+"                REF: Page 211, table D.1.\n"
+msgstr ""
+"      **FAIL**  Manufacturer JELEK (seharusnya \"HP\")\n"
+"                REF: Halaman 211, tabel D.1.\n"
+
+#: systemv/cupstestppd.c:838
+msgid ""
+"      **FAIL**  BAD Manufacturer (should be \"Oki\")\n"
+"                REF: Page 211, table D.1.\n"
+msgstr ""
+"      **FAIL**  Manufacturer JELEK (seharusnya \"Oki\")\n"
+"                REF: Halaman 211, tabel D.1.\n"
+
+#: systemv/cupstestppd.c:877
+#, c-format
+msgid ""
+"      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n"
+"                REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+"      **FAIL**  ModelName JELEK - \"%c\" tidak diperbolehkan dalam string.\n"
+"                REF: Halaman 59-60, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1033
+msgid ""
+"      **FAIL**  BAD PSVersion - not \"(string) int\".\n"
+"                REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+"      **FAIL**  PSVersion JELEK - bukan \"(string) int\".\n"
+"                REF: Halaman 62-64, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:994
+msgid ""
+"      **FAIL**  BAD Product - not \"(string)\".\n"
+"                REF: Page 62, section 5.3.\n"
+msgstr ""
+"      **FAIL**  Product JELEK - bukan \"(string)\".\n"
+"                REF: Halaman 62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1068
+msgid ""
+"      **FAIL**  BAD ShortNickName - longer than 31 chars.\n"
+"                REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+"      **FAIL**  ShortNickName JELEK - lebih dari 31 karakter.\n"
+"                REF: Halaman 64-65, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1224
+#, c-format
+msgid ""
+"      **FAIL**  Bad %s choice %s!\n"
+"                REF: Page 84, section 5.9\n"
+msgstr ""
+
+#: systemv/cupstestppd.c:702
+#, c-format
+msgid ""
+"      **FAIL**  Bad FileVersion \"%s\"\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **FAIL**  FileVersion \"%s\" jelek\n"
+"                REF: Halaman 56, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:746
+#, c-format
+msgid ""
+"      **FAIL**  Bad FormatVersion \"%s\"\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **FAIL**  FormatVersion \"%s\" jelek\n"
+"                REF: Halaman 56, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1288
+#, c-format
+msgid "      **FAIL**  Bad LanguageEncoding %s - must be ISOLatin1!\n"
+msgstr "      **FAIL**  LanguageEncoding %s jelek - seharusnya ISOLatin1!\n"
+
+#: systemv/cupstestppd.c:1302
+#, c-format
+msgid "      **FAIL**  Bad LanguageVersion %s - must be English!\n"
+msgstr "      **FAIL**  LanguageVersion %s jelek - seharusnya English!\n"
+
+#: systemv/cupstestppd.c:3443 systemv/cupstestppd.c:3465
+#, c-format
+msgid "      **FAIL**  Default option code cannot be interpreted: %s\n"
+msgstr "      **FAIL**  Kode opsi utama tidak bisa diinterpretasikan: %s\n"
+
+#: systemv/cupstestppd.c:1361
+#, c-format
+msgid ""
+"      **FAIL**  Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr "      **FAIL**  String translasi utama untuk opsi %s pilihan %s mengandung karakter 8-bit!\n"
+
+#: systemv/cupstestppd.c:1334
+#, c-format
+msgid ""
+"      **FAIL**  Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+"      **FAIL**  String translasi utama untuk opsi %s mengandung karakter 8-"
+"bit!\n"
+
+#: systemv/cupstestppd.c:2176
+#, c-format
+msgid "      **FAIL**  Group names %s and %s differ only by case!\n"
+msgstr "      **FAIL**  Nama kelompok %s dan %s berbeda hanya besar/kecilnya huruf!\n"
+
+#: systemv/cupstestppd.c:2221
+#, c-format
+msgid "      **FAIL**  Multiple occurrences of %s choice name %s!\n"
+msgstr "      **FAIL**  Terjadi ganda dari %s nama yang dipilih %s!\n"
+
+#: systemv/cupstestppd.c:2198
+#, c-format
+msgid "      **FAIL**  Option names %s and %s differ only by case!\n"
+msgstr "      **FAIL**  Nama opsi %s dan %s berbeda hanya besar/kecilnya huruf!\n"
+
+#: systemv/cupstestppd.c:679
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED Default%s\n"
+"                REF: Page 40, section 4.5.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN Default%s\n"
+"                REF: Halaman 40, seksi 4.5.\n"
+
+#: systemv/cupstestppd.c:580
+msgid ""
+"      **FAIL**  REQUIRED DefaultImageableArea\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN DefaultImageableArea\n"
+"                REF: Halaman 102, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:616
+msgid ""
+"      **FAIL**  REQUIRED DefaultPaperDimension\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN DefaultPaperDimension\n"
+"                REF: Halaman 103, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:720
+msgid ""
+"      **FAIL**  REQUIRED FileVersion\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN FileVersion\n"
+"                REF: Halaman 56, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:764
+msgid ""
+"      **FAIL**  REQUIRED FormatVersion\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN FormatVersion\n"
+"                REF: Halaman 56, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1153
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED ImageableArea for PageSize %s\n"
+"                REF: Page 41, section 5.\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN ImageableArea untuk PageSize %s\n"
+"                REF: Halaman 41, seksi 5.\n"
+"                REF: Halaman 102, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:784
+msgid ""
+"      **FAIL**  REQUIRED LanguageEncoding\n"
+"                REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN LanguageEncoding\n"
+"                REF: Halaman 56-57, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:804
+msgid ""
+"      **FAIL**  REQUIRED LanguageVersion\n"
+"                REF: Pages 57-58, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN LanguageVersion\n"
+"                REF: Halaman 57-58, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:856
+msgid ""
+"      **FAIL**  REQUIRED Manufacturer\n"
+"                REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN Manufacturer\n"
+"                REF: Halaman 58-59, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:896
+msgid ""
+"      **FAIL**  REQUIRED ModelName\n"
+"                REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN ModelName\n"
+"                REF: Halaman 59-60, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:916
+msgid ""
+"      **FAIL**  REQUIRED NickName\n"
+"                REF: Page 60, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN NickName\n"
+"                REF: Halaman 60, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:976
+msgid ""
+"      **FAIL**  REQUIRED PCFileName\n"
+"                REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN PCFileName\n"
+"                REF: Halaman 61-62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1051
+msgid ""
+"      **FAIL**  REQUIRED PSVersion\n"
+"                REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN PSVersion\n"
+"                REF: Halaman 62-64, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:956
+msgid ""
+"      **FAIL**  REQUIRED PageRegion\n"
+"                REF: Page 100, section 5.14.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN PageRegion\n"
+"                REF: Halaman 100, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:1122
+msgid ""
+"      **FAIL**  REQUIRED PageSize\n"
+"                REF: Page 41, section 5.\n"
+"                REF: Page 99, section 5.14.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN PageSize\n"
+"                REF: Halaman 41, seksi 5.\n"
+"                REF: Halaman 99, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:936
+msgid ""
+"      **FAIL**  REQUIRED PageSize\n"
+"                REF: Pages 99-100, section 5.14.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN PageSize\n"
+"                REF: Halaman 99-100, seksi 5.14.\n"
+
+#: systemv/cupstestppd.c:1175
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED PaperDimension for PageSize %s\n"
+"                REF: Page 41, section 5.\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN PaperDimension untuk PageSize %s\n"
+"                REF: Halaman 41, seksi 5.\n"
+"                REF: Halaman 103, seksi 5.15.\n"
+
+#: systemv/cupstestppd.c:1011
+msgid ""
+"      **FAIL**  REQUIRED Product\n"
+"                REF: Page 62, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN Product\n"
+"                REF: Halaman 62, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1086
+msgid ""
+"      **FAIL**  REQUIRED ShortNickName\n"
+"                REF: Page 64-65, section 5.3.\n"
+msgstr ""
+"      **FAIL**  DIPERLUKAN ShortNickName\n"
+"                REF: Halaman 64-65, seksi 5.3.\n"
+
+#: systemv/cupstestppd.c:1569
+#, c-format
+msgid "    %d ERRORS FOUND\n"
+msgstr "    %d KESALAHAN DITEMUKAN\n"
+
+#: systemv/cupstestdsc.c:238 systemv/cupstestdsc.c:280
+#, c-format
+msgid ""
+"    Bad %%%%BoundingBox: on line %d!\n"
+"        REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+"    %%%%BoundingBox jelek: pada baris %d!\n"
+"        REF: Halaman 39, %%%%BoundingBox:\n"
+
+#: systemv/cupstestdsc.c:309
+#, c-format
+msgid ""
+"    Bad %%%%Page: on line %d!\n"
+"        REF: Page 53, %%%%Page:\n"
+msgstr ""
+
+#: systemv/cupstestdsc.c:222 systemv/cupstestdsc.c:262
+#, c-format
+msgid ""
+"    Bad %%%%Pages: on line %d!\n"
+"        REF: Page 43, %%%%Pages:\n"
+msgstr ""
+
+#: systemv/cupstestdsc.c:180
+#, c-format
+msgid ""
+"    Line %d is longer than 255 characters (%d)!\n"
+"        REF: Page 25, Line Length\n"
+msgstr ""
+"    Baris %d lebih dari 255 karakter (%d)!\n"
+"        REF: Halaman 25, Line Length (Panjang Baris)\n"
+
+#: systemv/cupstestdsc.c:196
+msgid ""
+"    Missing %!PS-Adobe-3.0 on first line!\n"
+"        REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+"    Kehilangan %!PS-Adobe-3.0 pada baris pertama!\n"
+"        REF: Halaman 17, 3.1 Conforming Documents (Menyesuaikan Dokumen)\n"
+
+#: systemv/cupstestdsc.c:366
+#, c-format
+msgid ""
+"    Missing %%EndComments comment!\n"
+"        REF: Page 41, %%EndComments\n"
+msgstr ""
+"    Kehilangan komentar %%EndComments!\n"
+"        REF: Halaman 41, %%EndComments\n"
+
+#: systemv/cupstestdsc.c:346
+#, c-format
+msgid ""
+"    Missing or bad %%BoundingBox: comment!\n"
+"        REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+"    Kehilangan atau %%BoundingBox jelek: komentar!\n"
+"        REF: Halaman 39, %%BoundingBox:\n"
+
+#: systemv/cupstestdsc.c:376
+#, c-format
+msgid ""
+"    Missing or bad %%Page: comments!\n"
+"        REF: Page 53, %%Page:\n"
+msgstr ""
+"    Kehilangan atau %%Page jelek: komentar!\n"
+"        REF: Halaman 53, %%Page:\n"
+
+#: systemv/cupstestdsc.c:356
+#, c-format
+msgid ""
+"    Missing or bad %%Pages: comment!\n"
+"        REF: Page 43, %%Pages:\n"
+msgstr ""
+"    Kehilangan atau %%Pages jelek: komentar!\n"
+"        REF: Halaman 43, %%Pages:\n"
+
+#: systemv/cupstestppd.c:1571
+msgid "    NO ERRORS FOUND\n"
+msgstr "    TIDAK ADA KESALAHAN\n"
+
+#: systemv/cupstestdsc.c:399
+#, c-format
+msgid "    Saw %d lines that exceeded 255 characters!\n"
+msgstr "    Menemukan %d baris yang melebihi 255 karakter!\n"
+
+#: systemv/cupstestdsc.c:394
+#, c-format
+msgid "    Too many %%BeginDocument comments!\n"
+msgstr "    Terlalu banyak komentar %%BeginDocument!\n"
+
+#: systemv/cupstestdsc.c:386
+#, c-format
+msgid "    Too many %%EndDocument comments!\n"
+msgstr "    Terlalu banyak komentar %%EndDocument!\n"
+
+#: systemv/cupstestdsc.c:406
+msgid "    Warning: file contains binary data!\n"
+msgstr "    Peringatan: berkas mengandung data biner!\n"
+
+#: systemv/cupstestdsc.c:414
+#, c-format
+msgid "    Warning: no %%EndComments comment in file!\n"
+msgstr "    Peringatan: tidak ada komentar %%EndComments dalam berkas!\n"
+
+#: systemv/cupstestdsc.c:410
+#, c-format
+msgid "    Warning: obsolete DSC version %.1f in file!\n"
+msgstr "    Peringatan: DSC usang versi %.1f dalam berkas!\n"
+
+#: systemv/cupstestppd.c:577 systemv/cupstestppd.c:592
+#: systemv/cupstestppd.c:613 systemv/cupstestppd.c:628
+#: systemv/cupstestppd.c:656 systemv/cupstestppd.c:676
+#: systemv/cupstestppd.c:699 systemv/cupstestppd.c:717
+#: systemv/cupstestppd.c:743 systemv/cupstestppd.c:761
+#: systemv/cupstestppd.c:781 systemv/cupstestppd.c:801
+#: systemv/cupstestppd.c:819 systemv/cupstestppd.c:835
+#: systemv/cupstestppd.c:853 systemv/cupstestppd.c:874
+#: systemv/cupstestppd.c:893 systemv/cupstestppd.c:913
+#: systemv/cupstestppd.c:933 systemv/cupstestppd.c:953
+#: systemv/cupstestppd.c:973 systemv/cupstestppd.c:991
+#: systemv/cupstestppd.c:1008 systemv/cupstestppd.c:1030
+#: systemv/cupstestppd.c:1048 systemv/cupstestppd.c:1065
+#: systemv/cupstestppd.c:1083 systemv/cupstestppd.c:1099
+#: systemv/cupstestppd.c:1119 systemv/cupstestppd.c:1150
+#: systemv/cupstestppd.c:1172 systemv/cupstestppd.c:1221
+#: systemv/cupstestppd.c:1240 systemv/cupstestppd.c:1284
+#: systemv/cupstestppd.c:1298 systemv/cupstestppd.c:1330
+#: systemv/cupstestppd.c:1357 systemv/cupstestppd.c:1875
+#: systemv/cupstestppd.c:1894 systemv/cupstestppd.c:1912
+#: systemv/cupstestppd.c:1964 systemv/cupstestppd.c:1980
+#: systemv/cupstestppd.c:2017 systemv/cupstestppd.c:2035
+#: systemv/cupstestppd.c:2071 systemv/cupstestppd.c:2085
+#: systemv/cupstestppd.c:2112 systemv/cupstestppd.c:2126
+#: systemv/cupstestppd.c:2172 systemv/cupstestppd.c:2194
+#: systemv/cupstestppd.c:2217 systemv/cupstestppd.c:2234
+#: systemv/cupstestppd.c:2303 systemv/cupstestppd.c:2350
+#: systemv/cupstestppd.c:2374 systemv/cupstestppd.c:2425
+#: systemv/cupstestppd.c:2455 systemv/cupstestppd.c:2480
+#: systemv/cupstestppd.c:2496 systemv/cupstestppd.c:2526
+#: systemv/cupstestppd.c:2552 systemv/cupstestppd.c:2566
+#: systemv/cupstestppd.c:2590 systemv/cupstestppd.c:2604
+#: systemv/cupstestppd.c:2628 systemv/cupstestppd.c:2642
+#: systemv/cupstestppd.c:2666 systemv/cupstestppd.c:2680
+#: systemv/cupstestppd.c:2704 systemv/cupstestppd.c:2718
+#: systemv/cupstestppd.c:2735 systemv/cupstestppd.c:2790
+#: systemv/cupstestppd.c:2825 systemv/cupstestppd.c:2852
+#: systemv/cupstestppd.c:2907 systemv/cupstestppd.c:2922
+#: systemv/cupstestppd.c:2960 systemv/cupstestppd.c:3002
+#: systemv/cupstestppd.c:3016 systemv/cupstestppd.c:3077
+#: systemv/cupstestppd.c:3113 systemv/cupstestppd.c:3127
+#: systemv/cupstestppd.c:3173 systemv/cupstestppd.c:3205
+#: systemv/cupstestppd.c:3222 systemv/cupstestppd.c:3245
+#: systemv/cupstestppd.c:3261 systemv/cupstestppd.c:3299
+#: systemv/cupstestppd.c:3439 systemv/cupstestppd.c:3461
+#: systemv/cupstestppd.c:3567
+msgid " FAIL\n"
+msgstr " GAGAL\n"
+
+#: systemv/cupstestppd.c:462
+#, c-format
+msgid ""
+" FAIL\n"
+"      **FAIL**  Unable to open PPD file - %s\n"
+msgstr ""
+" GAGAL\n"
+"      **FAIL**  Tidak bisa membuka berkas PPD - %s\n"
+
+#: systemv/cupstestppd.c:473
+#, c-format
+msgid ""
+" FAIL\n"
+"      **FAIL**  Unable to open PPD file - %s on line %d.\n"
+msgstr ""
+" GAGAL\n"
+"      **FAIL**  Tidak bisa membuka berkas PPD - %s pada baris %d.\n"
+
+#: systemv/cupstestppd.c:1381
+msgid " PASS\n"
+msgstr " LEWAT\n"
+
+#: ppdc/sample.c:51
+msgid "#10 Envelope"
+msgstr "#10 Amplop"
+
+#: ppdc/sample.c:52
+msgid "#11 Envelope"
+msgstr "#11 Amplop"
+
+#: ppdc/sample.c:53
+msgid "#12 Envelope"
+msgstr "#12 Amplop"
+
+#: ppdc/sample.c:54
+msgid "#14 Envelope"
+msgstr "#14 Amplop"
+
+#: ppdc/sample.c:55
+msgid "#9 Envelope"
+msgstr "#9 Amplop"
+
+#: berkeley/lpq.c:552
+#, c-format
+msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bita\n"
+
+#: berkeley/lpq.c:557
+#, c-format
+msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bita\n"
+
+#: filter/bannertops.c:784
+#, c-format
+msgid "%.0f x %.0f millimeters"
+msgstr "%.0f x %.0f milimeter"
+
+#: filter/bannertops.c:805
+#, c-format
+msgid "%.0f x %.0f to %.0f x %.0f millimeters"
+msgstr "%.0f x %.0f hingga %.0f x %.0f milimeter"
+
+#: filter/bannertops.c:775
+#, c-format
+msgid "%.2f x %.2f inches"
+msgstr "%.2f x %.2f inci"
+
+#: filter/bannertops.c:794
+#, c-format
+msgid "%.2f x %.2f to %.2f x %.2f inches"
+msgstr "%.2f x %.2f hingga %.2f x %.2f inci"
+
+#: systemv/lpstat.c:754
+#, c-format
+msgid "%s accepting requests since %s\n"
+msgstr "%s menerima permintaan sejak %s\n"
+
+#: scheduler/ipp.c:10415
+#, c-format
+msgid "%s cannot be changed."
+msgstr "%s tidak bisa diubah."
+
+#: berkeley/lpc.c:194
+#, c-format
+msgid "%s is not implemented by the CUPS version of lpc.\n"
+msgstr "%s tidak diimplementasikan oleh versi lpc CUPS.\n"
+
+#: berkeley/lpq.c:643
+#, c-format
+msgid "%s is not ready\n"
+msgstr "%s tidak siap\n"
+
+#: berkeley/lpq.c:636
+#, c-format
+msgid "%s is ready\n"
+msgstr "%s siap\n"
+
+#: berkeley/lpq.c:639
+#, c-format
+msgid "%s is ready and printing\n"
+msgstr "%s siap dan sedang mencetak\n"
+
+#: systemv/lpstat.c:757
+#, c-format
+msgid ""
+"%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s tidak menerima permintaan sejak %s -\n"
+"\t%s\n"
+
+#: scheduler/ipp.c:701
+#, c-format
+msgid "%s not supported!"
+msgstr "%s tidak didukung!"
+
+#: systemv/lpstat.c:767
+#, c-format
+msgid "%s/%s accepting requests since %s\n"
+msgstr "%s/%s menerima permintaan sejak %s\n"
+
+#: systemv/lpstat.c:770
+#, c-format
+msgid ""
+"%s/%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s tidak menerima permintaan sejak %s -\n"
+"\t%s\n"
+
+#: berkeley/lpq.c:544
+#, c-format
+msgid "%s: %-33.33s [job %d localhost]\n"
+msgstr "%s: %-33.33s [tugas %d localhost]\n"
+
+#: systemv/cancel.c:303 systemv/cancel.c:367
+#, c-format
+msgid "%s: %s failed: %s\n"
+msgstr "%s: %s gagal: %s\n"
+
+#: systemv/cupsaccept.c:73
+#, c-format
+msgid "%s: Don't know what to do!\n"
+msgstr "%s: Tidak tahu apa yang hendak dikerjakan!\n"
+
+#: berkeley/lpr.c:356 systemv/lp.c:603
+#, c-format
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Kesalahan - Nama variabel lingkungan %s sebenarnya tidak ada \"%s\"!\n"
+
+#: systemv/lp.c:240
+#, c-format
+msgid "%s: Error - bad job ID!\n"
+msgstr "%s: Kesalahan - ID tugas jelek!\n"
+
+#: systemv/lp.c:227
+#, c-format
+msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "%s: Kesalahan - tidak bisa mencetak dan mengubah tugas secara bersamaan!\n"
+
+#: systemv/lp.c:523
+#, c-format
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: Kesalahan - tidak bisa mencetak dari stdin apabila berkas atau ID tugas "
+"disediakan!\n"
+
+#: systemv/lp.c:477
+#, c-format
+msgid "%s: Error - expected character set after '-S' option!\n"
+msgstr "%s: Kesalahan - diharapkan set karakter usai opsi '-S'!\n"
+
+#: systemv/lp.c:497
+#, c-format
+msgid "%s: Error - expected content type after '-T' option!\n"
+msgstr "%s: Kesalahan - diharapkan jenis konten usai opsi '-T'!\n"
+
+#: systemv/lp.c:273
+#, c-format
+msgid "%s: Error - expected copies after '-n' option!\n"
+msgstr "%s: Kesalahan - diharapkan banyaknya rangkap usai opsi '-n'!\n"
+
+#: berkeley/lpr.c:251
+#, c-format
+msgid "%s: Error - expected copy count after '-#' option!\n"
+msgstr "%s: Kesalahan - diharapkan banyak hitungan rangkap usai opsi '-#'!\n"
+
+#: berkeley/lpr.c:219
+#, c-format
+msgid "%s: Error - expected destination after '-P' option!\n"
+msgstr "%s: Kesalahan - diharapkan target usai opsi '-P'!\n"
+
+#: systemv/lpstat.c:238
+#, c-format
+msgid "%s: Error - expected destination after '-b' option!\n"
+msgstr "%s: Kesalahan - diharapkan target usai opsi '-b'!\n"
+
+#: systemv/lp.c:145
+#, c-format
+msgid "%s: Error - expected destination after '-d' option!\n"
+msgstr "%s: Kesalahan - diharapkan target usai opsi '-d'!\n"
+
+#: systemv/lp.c:175
+#, c-format
+msgid "%s: Error - expected form after '-f' option!\n"
+msgstr "%s: Kesalahan - diharapkan formulir usai opsi '-f'!\n"
+
+#: systemv/lp.c:404
+#, c-format
+msgid "%s: Error - expected hold name after '-H' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama yang ditahan usai opsi '-H'!\n"
+
+#: berkeley/lpr.c:111
+#, c-format
+msgid "%s: Error - expected hostname after '-H' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama host usai opsi '-H'!\n"
+
+#: berkeley/lpq.c:188 berkeley/lprm.c:130 systemv/cancel.c:130
+#: systemv/cupsaccept.c:131 systemv/lp.c:196 systemv/lpstat.c:298
+#, c-format
+msgid "%s: Error - expected hostname after '-h' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama host usai opsi '-h'!\n"
+
+#: systemv/lp.c:382
+#, c-format
+msgid "%s: Error - expected mode list after '-y' option!\n"
+msgstr "%s: Kesalahan - diharapkan daftar modus usai opsi '-y'!\n"
+
+#: berkeley/lpr.c:275
+#, c-format
+msgid "%s: Error - expected name after '-%c' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama usai opsi '-%c'!\n"
+
+#: systemv/lp.c:296
+#, c-format
+msgid "%s: Error - expected option string after '-o' option!\n"
+msgstr "%s: Kesalahan - diharapkan opsi string usai opsi '-o'!\n"
+
+#: systemv/lp.c:456
+#, c-format
+msgid "%s: Error - expected page list after '-P' option!\n"
+msgstr "%s: Kesalahan - diharapkan daftar halaman usai opsi '-P'!\n"
+
+#: systemv/lp.c:317
+#, c-format
+msgid "%s: Error - expected priority after '-%c' option!\n"
+msgstr "%s: Kesalahan - diharapkan prioritas usai opsi '-%c'!\n"
+
+#: systemv/cupsaccept.c:150
+#, c-format
+msgid "%s: Error - expected reason text after '-r' option!\n"
+msgstr "%s: Kesalahan - diharapkan teks alasan usai opsi '-r'!\n"
+
+#: systemv/lp.c:364
+#, c-format
+msgid "%s: Error - expected title after '-t' option!\n"
+msgstr "%s: Kesalahan - diharapkan judul usai opsi '-t'!\n"
+
+#: berkeley/lpq.c:117 berkeley/lpr.c:91 berkeley/lprm.c:110
+#: systemv/cancel.c:99 systemv/cupsaccept.c:108 systemv/lp.c:122
+#: systemv/lpadmin.c:471 systemv/lpstat.c:144
+#, c-format
+msgid "%s: Error - expected username after '-U' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama pengguna usai opsi '-U'!\n"
+
+#: systemv/cancel.c:152
+#, c-format
+msgid "%s: Error - expected username after '-u' option!\n"
+msgstr "%s: Kesalahan - diharapkan nama pengguna usai opsi '-u'!\n"
+
+#: berkeley/lpr.c:134
+#, c-format
+msgid "%s: Error - expected value after '-%c' option!\n"
+msgstr "%s: Kesalahan - diharapkan nilai usai opsi '-%c'!\n"
+
+#: systemv/lpstat.c:164 systemv/lpstat.c:178
+#, c-format
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: Kesalahan - diperlukan \"completed\", \"not-completed\", atau \"all\" "
+"usai opsi '-W'!\n"
+
+#: berkeley/lpr.c:361 systemv/lp.c:608
+#, c-format
+msgid "%s: Error - no default destination available.\n"
+msgstr "%s: Kesalahan - tidak tersedia tujuan utama.\n"
+
+#: systemv/lp.c:340
+#, c-format
+msgid "%s: Error - priority must be between 1 and 100.\n"
+msgstr "%s: Kesalahan - prioritas harus antara 1 dan 100.\n"
+
+#: berkeley/lpr.c:365 systemv/lp.c:612
+#, c-format
+msgid "%s: Error - scheduler not responding!\n"
+msgstr "%s: Kesalahan - penjadwal tidak merespon!\n"
+
+#: berkeley/lpr.c:317 systemv/lp.c:556
+#, c-format
+msgid "%s: Error - too many files - \"%s\"\n"
+msgstr "%s: Kesalahan - terlalu banyak berkas - \"%s\"\n"
+
+#: berkeley/lpr.c:299 systemv/lp.c:539
+#, c-format
+msgid "%s: Error - unable to access \"%s\" - %s\n"
+msgstr "%s: Kesalahan - tidak bisa mengakses \"%s\" - %s\n"
+
+#: berkeley/lpr.c:410 systemv/lp.c:645
+#, c-format
+msgid "%s: Error - unable to queue from stdin - %s\n"
+msgstr ""
+
+#: berkeley/lprm.c:93 berkeley/lprm.c:182 systemv/cancel.c:222
+#, c-format
+msgid "%s: Error - unknown destination \"%s\"!\n"
+msgstr "%s: Kesalahan - tujuan tak dikenal \"%s\"!\n"
+
+#: berkeley/lpq.c:157
+#, c-format
+msgid "%s: Error - unknown destination \"%s/%s\"!\n"
+msgstr "%s: Kesalahan - tujuan tak dikenal \"%s/%s\"!\n"
+
+#: berkeley/lpr.c:286 berkeley/lprm.c:148 systemv/cancel.c:164
+#: systemv/cupsaccept.c:174 systemv/lp.c:514 systemv/lpstat.c:459
+#, c-format
+msgid "%s: Error - unknown option '%c'!\n"
+msgstr "%s: Kesalahan - opsi tak dikenal '%c'!\n"
+
+#: systemv/cupsaccept.c:167
+#, c-format
+msgid "%s: Error - unknown option '%s'!\n"
+msgstr "%s: Kesalahan - opsi '%s' tak dikenal!\n"
+
+#: systemv/lp.c:216
+#, c-format
+msgid "%s: Expected job ID after '-i' option!\n"
+msgstr "%s: Diharapkan ID tugas usai opsi '-i'!\n"
+
+#: scheduler/cupsfilter.c:558
+#, c-format
+msgid "%s: Filter \"%s\" not available: %s\n"
+msgstr "%s: Penyaring \"%s\" tak tersedia: %s\n"
+
+#: systemv/lpstat.c:511 systemv/lpstat.c:550
+#, c-format
+msgid "%s: Invalid destination name in list \"%s\"!\n"
+msgstr "%s: Nama tujuan tidak sah pada daftar \"%s\"!\n"
+
+#: scheduler/cupsfilter.c:539
+#, c-format
+msgid "%s: Invalid filter string \"%s\"\n"
+msgstr "%s: String penyaring \"%s\" tidak sah\n"
+
+#: systemv/lp.c:432
+#, c-format
+msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
+msgstr "%s: Memerlukan ID tugas ('-i jobid') sebelum '-H restart'!\n"
+
+#: scheduler/cupsfilter.c:453
+#, c-format
+msgid "%s: No filter to convert from %s/%s to %s/%s!\n"
+msgstr "%s: Tidak ada penyaring untuk konversi dari %s/%s ke %s/%s!\n"
+
+#: systemv/cupsaccept.c:208
+#, c-format
+msgid "%s: Operation failed: %s\n"
+msgstr "%s: Operasi gagal: %s\n"
+
+#: berkeley/lpq.c:103 berkeley/lpr.c:77 berkeley/lprm.c:72 systemv/cancel.c:85
+#: systemv/cupsaccept.c:94 systemv/cupsaddsmb.c:91 systemv/lp.c:108
+#: systemv/lpadmin.c:277 systemv/lpinfo.c:94 systemv/lpmove.c:79
+#: systemv/lpstat.c:109
+#, c-format
+msgid "%s: Sorry, no encryption support compiled in!\n"
+msgstr "%s: Maaf, tidak ada dukungan enkripsi yang dikompilasi serta!\n"
+
+#: berkeley/lpq.c:304 scheduler/cupsfilter.c:1106 systemv/cupsaddsmb.c:149
+#: systemv/cupsaddsmb.c:175
+#, c-format
+msgid "%s: Unable to connect to server\n"
+msgstr "%s: Tidak bisa terhubung ke server\n"
+
+#: systemv/cancel.c:245 systemv/cancel.c:326
+#, c-format
+msgid "%s: Unable to contact server!\n"
+msgstr "%s: Tidak bisa mengontak server!\n"
+
+#: scheduler/cupsfilter.c:419
+#, c-format
+msgid "%s: Unable to determine MIME type of \"%s\"!\n"
+msgstr "%s: Tidak bisa menentukan jenis MIME dari \"%s\"!\n"
+
+#: ppdc/ppdc-file.cxx:50 ppdc/ppdmerge.cxx:99
+#, c-format
+msgid "%s: Unable to open %s: %s\n"
+msgstr "%s: Tidak bisa membuka %s: %s\n"
+
+#: scheduler/cupsfilter.c:603
+#, c-format
+msgid "%s: Unable to open PPD file: %s on line %d\n"
+msgstr "%s: Tidak bisa membuka berkas PPD: %s pada baris %d\n"
+
+#: ppdc/ppdmerge.cxx:113
+#, c-format
+msgid "%s: Unable to open PPD file: %s on line %d.\n"
+msgstr "%s: Tidak bisa membuka berkas PPD: %s pada baris %d.\n"
+
+#: scheduler/cupsfilter.c:384
+#, c-format
+msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"!\n"
+msgstr "%s: Tak dapat membaca basis data MIME dari \"%s\" atau \"%s\"!\n"
+
+#: berkeley/lpq.c:161 systemv/lpstat.c:565
+#, c-format
+msgid "%s: Unknown destination \"%s\"!\n"
+msgstr "%s: Tujuan tak dikenal \"%s\"!\n"
+
+#: scheduler/cupsfilter.c:430
+#, c-format
+msgid "%s: Unknown destination MIME type %s/%s!\n"
+msgstr "%s: Jenis MIME yang dituju tak dikenal %s/%s!\n"
+
+#: scheduler/cupsfilter.c:1312
+#, c-format
+msgid "%s: Unknown option '%c'!\n"
+msgstr "%s: Opsi tak dikenal '%c'!\n"
+
+#: scheduler/cupsfilter.c:411
+#, c-format
+msgid "%s: Unknown source MIME type %s/%s!\n"
+msgstr "%s: Sumber jenis MIME tak dikenal %s/%s!\n"
+
+#: berkeley/lpr.c:148
+#, c-format
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: Peringatan - format peubah '%c' tidak didukung - keluaran yang "
+"dihasilkan mungkin tak tepat!\n"
+
+#: systemv/lp.c:485
+#, c-format
+msgid "%s: Warning - character set option ignored!\n"
+msgstr "%s: Peringatan - opsi set karakter diabaikan!\n"
+
+#: systemv/lp.c:505
+#, c-format
+msgid "%s: Warning - content type option ignored!\n"
+msgstr "%s: Peringatan - opsi jenis konten diabaikan!\n"
+
+#: systemv/lp.c:182
+#, c-format
+msgid "%s: Warning - form option ignored!\n"
+msgstr "%s: Peringatan - opsi formulir diabaikan!\n"
+
+#: systemv/lp.c:390
+#, c-format
+msgid "%s: Warning - mode option ignored!\n"
+msgstr "%s: Peringatan - opsi modus diabaikan!\n"
+
+#: berkeley/lpq.c:245
+#, c-format
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: kesalahan - nama variabel lingkungan %s merupakan tujuan yang tidak ada "
+"\"%s\"!\n"
+
+#: berkeley/lpr.c:162
+#, c-format
+msgid "%s: error - expected option=value after '-o' option!\n"
+msgstr "%s: kesalahan - diharapkan opsi=nilai usai opsi '-o'!\n"
+
+#: berkeley/lpq.c:250
+#, c-format
+msgid "%s: error - no default destination available.\n"
+msgstr "%s: kesalahan - tidak ada tujuan utama.\n"
+
+#: ppdc/sample.c:281
+msgid "-1"
+msgstr "-1"
+
+#: ppdc/sample.c:272
+msgid "-10"
+msgstr "-10"
+
+#: ppdc/sample.c:364
+msgid "-100"
+msgstr "-100"
+
+#: ppdc/sample.c:363
+msgid "-105"
+msgstr "-105"
+
+#: ppdc/sample.c:271
+msgid "-11"
+msgstr "-11"
+
+#: ppdc/sample.c:362
+msgid "-110"
+msgstr "-110"
+
+#: ppdc/sample.c:361
+msgid "-115"
+msgstr "-115"
+
+#: ppdc/sample.c:270
+msgid "-12"
+msgstr "-12"
+
+#: ppdc/sample.c:360
+msgid "-120"
+msgstr "-120"
+
+#: ppdc/sample.c:269
+msgid "-13"
+msgstr "-13"
+
+#: ppdc/sample.c:268
+msgid "-14"
+msgstr "-14"
+
+#: ppdc/sample.c:267
+msgid "-15"
+msgstr "-15"
+
+#: ppdc/sample.c:280
+msgid "-2"
+msgstr "-2"
+
+#: ppdc/sample.c:380
+msgid "-20"
+msgstr "-20"
+
+#: ppdc/sample.c:379
+msgid "-25"
+msgstr "-25"
+
+#: ppdc/sample.c:279
+msgid "-3"
+msgstr "-3"
+
+#: ppdc/sample.c:378
+msgid "-30"
+msgstr "-30"
+
+#: ppdc/sample.c:377
+msgid "-35"
+msgstr "-35"
+
+#: ppdc/sample.c:278
+msgid "-4"
+msgstr "-4"
+
+#: ppdc/sample.c:376
+msgid "-40"
+msgstr "-40"
+
+#: ppdc/sample.c:375
+msgid "-45"
+msgstr "-45"
+
+#: ppdc/sample.c:277
+msgid "-5"
+msgstr "-5"
+
+#: ppdc/sample.c:374
+msgid "-50"
+msgstr "-50"
+
+#: ppdc/sample.c:373
+msgid "-55"
+msgstr "-55"
+
+#: ppdc/sample.c:276
+msgid "-6"
+msgstr "-6"
+
+#: ppdc/sample.c:372
+msgid "-60"
+msgstr "-60"
+
+#: ppdc/sample.c:371
+msgid "-65"
+msgstr "-65"
+
+#: ppdc/sample.c:275
+msgid "-7"
+msgstr "-7"
+
+#: ppdc/sample.c:370
+msgid "-70"
+msgstr "-70"
+
+#: ppdc/sample.c:369
+msgid "-75"
+msgstr "-75"
+
+#: ppdc/sample.c:274
+msgid "-8"
+msgstr "-8"
+
+#: ppdc/sample.c:368
+msgid "-80"
+msgstr "-80"
+
+#: ppdc/sample.c:367
+msgid "-85"
+msgstr "-85"
+
+#: ppdc/sample.c:273
+msgid "-9"
+msgstr "-9"
+
+#: ppdc/sample.c:366
+msgid "-90"
+msgstr "-90"
+
+#: ppdc/sample.c:365
+msgid "-95"
+msgstr "-95"
+
+#: ppdc/sample.c:282
+msgid "0"
+msgstr "0"
+
+#: ppdc/sample.c:283
+msgid "1"
+msgstr "1"
+
+#: ppdc/sample.c:355
+msgid "1 inch/sec."
+msgstr "1 inci/det."
+
+#: ppdc/sample.c:144
+msgid "1.25x0.25\""
+msgstr "1,25x0,25\""
+
+#: ppdc/sample.c:145
+msgid "1.25x2.25\""
+msgstr "1,25x2,25\""
+
+#: ppdc/sample.c:403
+msgid "1.5 inch/sec."
+msgstr "1,5 inci/det."
+
+#: ppdc/sample.c:146
+msgid "1.50x0.25\""
+msgstr "1,50x0,25\""
+
+#: ppdc/sample.c:147
+msgid "1.50x0.50\""
+msgstr "1,50x0,50\""
+
+#: ppdc/sample.c:148
+msgid "1.50x1.00\""
+msgstr "1,50x1,00\""
+
+#: ppdc/sample.c:149
+msgid "1.50x2.00\""
+msgstr "1,50x2,00\""
+
+#: ppdc/sample.c:292
+msgid "10"
+msgstr "10"
+
+#: ppdc/sample.c:414
+msgid "10 inches/sec."
+msgstr "10 inci/det."
+
+#: ppdc/sample.c:1
+msgid "10 x 11\""
+msgstr "10 x 11\""
+
+#: ppdc/sample.c:2
+msgid "10 x 13\""
+msgstr "10 x 13\""
+
+#: ppdc/sample.c:3
+msgid "10 x 14\""
+msgstr "10 x 14\""
+
+#: ppdc/sample.c:394
+msgid "100"
+msgstr "100"
+
+#: ppdc/sample.c:305
+msgid "100 mm/sec."
+msgstr "100 mm/det."
+
+#: ppdc/sample.c:395
+msgid "105"
+msgstr "105"
+
+#: ppdc/sample.c:293
+msgid "11"
+msgstr "11"
+
+#: ppdc/sample.c:415
+msgid "11 inches/sec."
+msgstr "11 inci/det."
+
+#: ppdc/sample.c:396
+msgid "110"
+msgstr "110"
+
+#: ppdc/sample.c:397
+msgid "115"
+msgstr "115"
+
+#: ppdc/sample.c:294
+msgid "12"
+msgstr "12"
+
+#: ppdc/sample.c:416
+msgid "12 inches/sec."
+msgstr "12 inci/det."
+
+#: ppdc/sample.c:4
+msgid "12 x 11\""
+msgstr "12 x 11\""
+
+#: ppdc/sample.c:398
+msgid "120"
+msgstr "120"
+
+#: ppdc/sample.c:306
+msgid "120 mm/sec."
+msgstr "120 mm/det."
+
+#: ppdc/sample.c:215
+msgid "120x60dpi"
+msgstr "120x60dpi"
+
+#: ppdc/sample.c:221
+msgid "120x72dpi"
+msgstr "120x72dpi"
+
+#: ppdc/sample.c:295
+msgid "13"
+msgstr "13"
+
+#: ppdc/sample.c:204
+msgid "136dpi"
+msgstr "136dpi"
+
+#: ppdc/sample.c:296
+msgid "14"
+msgstr "14"
+
+#: ppdc/sample.c:297
+msgid "15"
+msgstr "15"
+
+#: ppdc/sample.c:299
+msgid "15 mm/sec."
+msgstr "15 mm/det."
+
+#: ppdc/sample.c:5
+msgid "15 x 11\""
+msgstr "15 x 11\""
+
+#: ppdc/sample.c:307
+msgid "150 mm/sec."
+msgstr "150 mm/det."
+
+#: ppdc/sample.c:254
+msgid "150dpi"
+msgstr "150dpi"
+
+#: ppdc/sample.c:339
+msgid "16"
+msgstr "16"
+
+#: ppdc/sample.c:340
+msgid "17"
+msgstr "17"
+
+#: ppdc/sample.c:341
+msgid "18"
+msgstr "18"
+
+#: ppdc/sample.c:216
+msgid "180dpi"
+msgstr "180dpi"
+
+#: ppdc/sample.c:342
+msgid "19"
+msgstr "19"
+
+#: ppdc/sample.c:284
+msgid "2"
+msgstr "2"
+
+#: ppdc/sample.c:356
+msgid "2 inches/sec."
+msgstr "2 inci/det."
+
+#: ppdc/sample.c:242
+msgid "2-Sided Printing"
+msgstr "2-Sisi Pencetakan"
+
+#: ppdc/sample.c:150
+msgid "2.00x0.37\""
+msgstr "2,00x0,37\""
+
+#: ppdc/sample.c:151
+msgid "2.00x0.50\""
+msgstr "2,00x0,50\""
+
+#: ppdc/sample.c:152
+msgid "2.00x1.00\""
+msgstr "2,00x1.00\""
+
+#: ppdc/sample.c:153
+msgid "2.00x1.25\""
+msgstr "2,00x1,25\""
+
+#: ppdc/sample.c:154
+msgid "2.00x2.00\""
+msgstr "2,00x2,00\""
+
+#: ppdc/sample.c:155
+msgid "2.00x3.00\""
+msgstr "2,00x3,00\""
+
+#: ppdc/sample.c:156
+msgid "2.00x4.00\""
+msgstr "2,00x4,00\""
+
+#: ppdc/sample.c:157
+msgid "2.00x5.50\""
+msgstr "2,00x5,50\""
+
+#: ppdc/sample.c:158
+msgid "2.25x0.50\""
+msgstr "2,25x0,50\""
+
+#: ppdc/sample.c:159
+msgid "2.25x1.25\""
+msgstr "2,25x1,25\""
+
+#: ppdc/sample.c:160
+msgid "2.25x4.00\""
+msgstr "2,25x4,00\""
+
+#: ppdc/sample.c:161
+msgid "2.25x5.50\""
+msgstr "2,25x5,50\""
+
+#: ppdc/sample.c:162
+msgid "2.38x5.50\""
+msgstr "2,38x5,50\""
+
+#: ppdc/sample.c:404
+msgid "2.5 inches/sec."
+msgstr "2,5 inci/det."
+
+#: ppdc/sample.c:163
+msgid "2.50x1.00\""
+msgstr "2,50x1,00\""
+
+#: ppdc/sample.c:164
+msgid "2.50x2.00\""
+msgstr "2,50x2,00\""
+
+#: ppdc/sample.c:165
+msgid "2.75x1.25\""
+msgstr "2,75x1,25\""
+
+#: ppdc/sample.c:166
+msgid "2.9 x 1\""
+msgstr "2,9 x 1\""
+
+#: ppdc/sample.c:343
+msgid "20"
+msgstr "20"
+
+#: ppdc/sample.c:300
+msgid "20 mm/sec."
+msgstr "20 mm/det."
+
+#: ppdc/sample.c:308
+msgid "200 mm/sec."
+msgstr "200 mm/det."
+
+#: ppdc/sample.c:205
+msgid "203dpi"
+msgstr "203dpi"
+
+#: ppdc/sample.c:344
+msgid "21"
+msgstr "21"
+
+#: ppdc/sample.c:345
+msgid "22"
+msgstr "22"
+
+#: ppdc/sample.c:346
+msgid "23"
+msgstr "23"
+
+#: ppdc/sample.c:347
+msgid "24"
+msgstr "24"
+
+#: ppdc/sample.c:213
+msgid "24-Pin Series"
+msgstr "Seri 24-Pin"
+
+#: ppdc/sample.c:222
+msgid "240x72dpi"
+msgstr "240x72dpi"
+
+#: ppdc/sample.c:348
+msgid "25"
+msgstr "25"
+
+#: ppdc/sample.c:309
+msgid "250 mm/sec."
+msgstr "250 mm/det."
+
+#: ppdc/sample.c:349
+msgid "26"
+msgstr "26"
+
+#: ppdc/sample.c:350
+msgid "27"
+msgstr "27"
+
+#: ppdc/sample.c:351
+msgid "28"
+msgstr "28"
+
+#: ppdc/sample.c:352
+msgid "29"
+msgstr "29"
+
+#: ppdc/sample.c:285
+msgid "3"
+msgstr "3"
+
+#: ppdc/sample.c:357
+msgid "3 inches/sec."
+msgstr "3 inci/det."
+
+#: ppdc/sample.c:167
+msgid "3.00x1.00\""
+msgstr "3,00x1,00\""
+
+#: ppdc/sample.c:168
+msgid "3.00x1.25\""
+msgstr "3,00x1,25\""
+
+#: ppdc/sample.c:169
+msgid "3.00x2.00\""
+msgstr "3,00x2,00\""
+
+#: ppdc/sample.c:170
+msgid "3.00x3.00\""
+msgstr "3,00x3,00\""
+
+#: ppdc/sample.c:171
+msgid "3.00x5.00\""
+msgstr "3,00x5,00\""
+
+#: ppdc/sample.c:172
+msgid "3.25x2.00\""
+msgstr "3,25x2,00\""
+
+#: ppdc/sample.c:173
+msgid "3.25x5.00\""
+msgstr "3,25x5,00\""
+
+#: ppdc/sample.c:174
+msgid "3.25x5.50\""
+msgstr "3,25x5,50\""
+
+#: ppdc/sample.c:175
+msgid "3.25x5.83\""
+msgstr "3,25x5,83\""
+
+#: ppdc/sample.c:176
+msgid "3.25x7.83\""
+msgstr "3,25x7,83\""
+
+#: ppdc/sample.c:134
+msgid "3.5\" Disk"
+msgstr "Diska 3,5\""
+
+#: ppdc/sample.c:143
+msgid "3.5\" Disk - 2 1/8 x 2 3/4\""
+msgstr "Diska 3.5\" - 2 1/8 x 2 3/4\""
+
+#: ppdc/sample.c:177
+msgid "3.50x1.00\""
+msgstr "3,50x1,00\""
+
+#: ppdc/sample.c:353
+msgid "30"
+msgstr "30"
+
+#: ppdc/sample.c:301
+msgid "30 mm/sec."
+msgstr "30 mm/det."
+
+#: ppdc/sample.c:310
+msgid "300 mm/sec."
+msgstr "300 mm/det."
+
+#: ppdc/sample.c:206
+msgid "300dpi"
+msgstr "300dpi"
+
+#: ppdc/sample.c:381
+msgid "35"
+msgstr "35"
+
+#: ppdc/sample.c:218
+msgid "360dpi"
+msgstr "360dpi"
+
+#: ppdc/sample.c:217
+msgid "360x180dpi"
+msgstr "360x180dpi"
+
+#: ppdc/sample.c:286
+msgid "4"
+msgstr "4"
+
+#: ppdc/sample.c:358
+msgid "4 inches/sec."
+msgstr "4 inci/det."
+
+#: ppdc/sample.c:178
+msgid "4.00x1.00\""
+msgstr "4,00x1,00\""
+
+#: ppdc/sample.c:186
+msgid "4.00x13.00\""
+msgstr "4,00x13,00\""
+
+#: ppdc/sample.c:179
+msgid "4.00x2.00\""
+msgstr "4,00x2,00\""
+
+#: ppdc/sample.c:180
+msgid "4.00x2.50\""
+msgstr "4,00x2,50\""
+
+#: ppdc/sample.c:181
+msgid "4.00x3.00\""
+msgstr "4,00x3,00\""
+
+#: ppdc/sample.c:182
+msgid "4.00x4.00\""
+msgstr "4,00x4,00\""
+
+#: ppdc/sample.c:183
+msgid "4.00x5.00\""
+msgstr "4,00x5,00\""
+
+#: ppdc/sample.c:184
+msgid "4.00x6.00\""
+msgstr "4,00x6,00\""
+
+#: ppdc/sample.c:185
+msgid "4.00x6.50\""
+msgstr "4,00x6,50\""
+
+#: ppdc/sample.c:382
+msgid "40"
+msgstr "40"
+
+#: ppdc/sample.c:302
+msgid "40 mm/sec."
+msgstr "40 mm/det."
+
+#: ppdc/sample.c:383
+msgid "45"
+msgstr "45"
+
+#: ppdc/sample.c:287
+msgid "5"
+msgstr "5"
+
+#: ppdc/sample.c:408
+msgid "5 inches/sec."
+msgstr "5 inci/det."
+
+#: ppdc/sample.c:384
+msgid "50"
+msgstr "50"
+
+#: ppdc/sample.c:385
+msgid "55"
+msgstr "55"
+
+#: ppdc/sample.c:288
+msgid "6"
+msgstr "6"
+
+#: ppdc/sample.c:409
+msgid "6 inches/sec."
+msgstr "6 inci/det."
+
+#: ppdc/sample.c:187
+msgid "6.00x1.00\""
+msgstr "6,00x1,00\""
+
+#: ppdc/sample.c:188
+msgid "6.00x2.00\""
+msgstr "6,00x2,00\""
+
+#: ppdc/sample.c:189
+msgid "6.00x3.00\""
+msgstr "6,00x3,00\""
+
+#: ppdc/sample.c:190
+msgid "6.00x4.00\""
+msgstr "6,00x4,00\""
+
+#: ppdc/sample.c:191
+msgid "6.00x5.00\""
+msgstr "6,00x5,00\""
+
+#: ppdc/sample.c:192
+msgid "6.00x6.00\""
+msgstr "6,00x6,00\""
+
+#: ppdc/sample.c:193
+msgid "6.00x6.50\""
+msgstr "6,00x6,50\""
+
+#: ppdc/sample.c:386
+msgid "60"
+msgstr "60"
+
+#: ppdc/sample.c:303
+msgid "60 mm/sec."
+msgstr "60 mm/det."
+
+#: ppdc/sample.c:233
+msgid "600dpi"
+msgstr "600dpi"
+
+#: ppdc/sample.c:214
+msgid "60dpi"
+msgstr "60dpi"
+
+#: ppdc/sample.c:220
+msgid "60x720dpi"
+msgstr "60x720dpi"
+
+#: ppdc/sample.c:387
+msgid "65"
+msgstr "65"
+
+#: ppdc/sample.c:289
+msgid "7"
+msgstr "7"
+
+#: ppdc/sample.c:411
+msgid "7 inches/sec."
+msgstr "7 inci/det."
+
+#: ppdc/sample.c:6
+msgid "7 x 9\""
+msgstr "7 x 9\""
+
+#: ppdc/sample.c:388
+msgid "70"
+msgstr "70"
+
+#: ppdc/sample.c:224
+msgid "720dpi"
+msgstr "720dpi"
+
+#: ppdc/sample.c:389
+msgid "75"
+msgstr "75"
+
+#: ppdc/sample.c:290
+msgid "8"
+msgstr "8"
+
+#: ppdc/sample.c:412
+msgid "8 inches/sec."
+msgstr "8 inci/det."
+
+#: ppdc/sample.c:7
+msgid "8 x 10\""
+msgstr "8 x 10\""
+
+#: ppdc/sample.c:194
+msgid "8.00x1.00\""
+msgstr "8,00x1,00\""
+
+#: ppdc/sample.c:195
+msgid "8.00x2.00\""
+msgstr "8,00x2,00\""
+
+#: ppdc/sample.c:196
+msgid "8.00x3.00\""
+msgstr "8,00x3,00\""
+
+#: ppdc/sample.c:197
+msgid "8.00x4.00\""
+msgstr "8,00x4,00\""
+
+#: ppdc/sample.c:198
+msgid "8.00x5.00\""
+msgstr "8,00x5,00\""
+
+#: ppdc/sample.c:199
+msgid "8.00x6.00\""
+msgstr "8,00x6,00\""
+
+#: ppdc/sample.c:200
+msgid "8.00x6.50\""
+msgstr "8,00x6,50\""
+
+#: ppdc/sample.c:390
+msgid "80"
+msgstr "80"
+
+#: ppdc/sample.c:304
+msgid "80 mm/sec."
+msgstr "80 mm/det."
+
+#: ppdc/sample.c:391
+msgid "85"
+msgstr "85"
+
+#: ppdc/sample.c:291
+msgid "9"
+msgstr "9"
+
+#: ppdc/sample.c:413
+msgid "9 inches/sec."
+msgstr "9 inci/det."
+
+#: ppdc/sample.c:8
+msgid "9 x 11\""
+msgstr "9 x 11\""
+
+#: ppdc/sample.c:9
+msgid "9 x 12\""
+msgstr "9 x 12\""
+
+#: ppdc/sample.c:219
+msgid "9-Pin Series"
+msgstr "Seri 9-Pin"
+
+#: ppdc/sample.c:392
+msgid "90"
+msgstr "90"
+
+#: ppdc/sample.c:393
+msgid "95"
+msgstr "95"
+
+#: berkeley/lpc.c:218
+msgid "?Invalid help command unknown\n"
+msgstr ""
+
+#: cgi-bin/admin.c:2343
+msgid "A Samba password is required to export printer drivers!"
+msgstr "Diperlukan sandi Samba untuk mengekspor penggerak pencetak!"
+
+#: cgi-bin/admin.c:2339
+msgid "A Samba username is required to export printer drivers!"
+msgstr "Diperlukan nama pengguna Samba untuk mengekspor penggerak pencetak!"
+
+#: scheduler/ipp.c:2390
+#, c-format
+msgid "A class named \"%s\" already exists!"
+msgstr "Kelas bernama \"%s\" sudah ada!"
+
+#: scheduler/ipp.c:1013
+#, c-format
+msgid "A printer named \"%s\" already exists!"
+msgstr "Pencetak bernama \"%s\" sudah ada!"
+
+#: ppdc/sample.c:10
+msgid "A0"
+msgstr "A0"
+
+#: ppdc/sample.c:11
+msgid "A1"
+msgstr "A1"
+
+#: ppdc/sample.c:24
+msgid "A10"
+msgstr "A10"
+
+#: ppdc/sample.c:12
+msgid "A2"
+msgstr "A2"
+
+#: ppdc/sample.c:13
+msgid "A3"
+msgstr "A3"
+
+#: ppdc/sample.c:14
+msgid "A3 (Oversize)"
+msgstr "A3 (Besar)"
+
+#: ppdc/sample.c:15
+msgid "A4"
+msgstr "A4"
+
+#: ppdc/sample.c:16
+msgid "A4 (Oversize)"
+msgstr "A4 (Besar)"
+
+#: ppdc/sample.c:17
+msgid "A4 (Small)"
+msgstr "A4 (Kecil)"
+
+#: ppdc/sample.c:18
+msgid "A5"
+msgstr "A5"
+
+#: ppdc/sample.c:19
+msgid "A5 (Oversize)"
+msgstr "A5 (Besar)"
+
+#: ppdc/sample.c:20
+msgid "A6"
+msgstr "A6"
+
+#: ppdc/sample.c:21
+msgid "A7"
+msgstr "A7"
+
+#: ppdc/sample.c:22
+msgid "A8"
+msgstr "A8"
+
+#: ppdc/sample.c:23
+msgid "A9"
+msgstr "A9"
+
+#: ppdc/sample.c:25
+msgid "ANSI A"
+msgstr "ANSI A"
+
+#: ppdc/sample.c:26
+msgid "ANSI B"
+msgstr "ANSI B"
+
+#: ppdc/sample.c:27
+msgid "ANSI C"
+msgstr "ANSI C"
+
+#: ppdc/sample.c:28
+msgid "ANSI D"
+msgstr "ANSI D"
+
+#: ppdc/sample.c:29
+msgid "ANSI E"
+msgstr "ANSI E"
+
+#: ppdc/sample.c:30
+msgid "ARCH A"
+msgstr "ARCH A"
+
+#: ppdc/sample.c:31
+msgid "ARCH B"
+msgstr "ARCH B"
+
+#: ppdc/sample.c:32
+msgid "ARCH C"
+msgstr "ARCH C"
+
+#: ppdc/sample.c:33
+msgid "ARCH D"
+msgstr "ARCH D"
+
+#: ppdc/sample.c:34
+msgid "ARCH E"
+msgstr "ARCH E"
+
+#: cgi-bin/classes.c:154 cgi-bin/printers.c:157
+msgid "Accept Jobs"
+msgstr "Terima Tugas"
+
+#: cups/http-support.c:1196
+msgid "Accepted"
+msgstr "Diterima"
+
+#: cgi-bin/admin.c:480
+msgid "Add Class"
+msgstr "Tambah Kelas"
+
+#: cgi-bin/admin.c:778
+msgid "Add Printer"
+msgstr "Tambah Pencetak"
+
+#: cgi-bin/admin.c:355 cgi-bin/admin.c:388 cgi-bin/admin.c:436
+#: cgi-bin/admin.c:446
+msgid "Add RSS Subscription"
+msgstr "Tambah Subskripsi RSS"
+
+#: ppdc/sample.c:126
+msgid "Address"
+msgstr "Alamat"
+
+#: ppdc/sample.c:135
+msgid "Address - 1 1/8 x 3 1/2\""
+msgstr "Alamat - 1 1/8 x 3 1/2\""
+
+#: cgi-bin/admin.c:187 cgi-bin/admin.c:218 cgi-bin/admin.c:2761
+msgid "Administration"
+msgstr "Administrasi"
+
+#: ppdc/sample.c:400
+msgid "Always"
+msgstr "Selalu"
+
+#: backend/socket.c:126
+msgid "AppSocket/HP JetDirect"
+msgstr "AppSocket/HP JetDirect"
+
+#: ppdc/sample.c:421
+msgid "Applicator"
+msgstr "Aplikator"
+
+#: scheduler/ipp.c:1135
+#, c-format
+msgid "Attempt to set %s printer-state to bad value %d!"
+msgstr ""
+
+#: scheduler/ipp.c:341
+#, c-format
+msgid "Attribute groups are out of order (%x < %x)!"
+msgstr "Kelompok atribut di luar jangkauan (%x < %x)!"
+
+#: ppdc/sample.c:35
+msgid "B0"
+msgstr "B0"
+
+#: ppdc/sample.c:37
+msgid "B1"
+msgstr "B1"
+
+#: ppdc/sample.c:36
+msgid "B10"
+msgstr "B10"
+
+#: ppdc/sample.c:38
+msgid "B2"
+msgstr "B2"
+
+#: ppdc/sample.c:39
+msgid "B3"
+msgstr "B3"
+
+#: ppdc/sample.c:40
+msgid "B4"
+msgstr "B4"
+
+#: ppdc/sample.c:41
+msgid "B5"
+msgstr "B5"
+
+#: ppdc/sample.c:42
+msgid "B6"
+msgstr "B6"
+
+#: ppdc/sample.c:43
+msgid "B7"
+msgstr "B7"
+
+#: ppdc/sample.c:44
+msgid "B8"
+msgstr "B8"
+
+#: ppdc/sample.c:45
+msgid "B9"
+msgstr "B9"
+
+#: cups/dest.c:317
+msgid "Bad NULL dests pointer"
+msgstr ""
+
+#: cups/ppd.c:342
+msgid "Bad OpenGroup"
+msgstr "OpenGroup Jelek"
+
+#: cups/ppd.c:344
+msgid "Bad OpenUI/JCLOpenUI"
+msgstr "OpenUI/JCLOpenUI Jelek"
+
+#: cups/ppd.c:346
+msgid "Bad OrderDependency"
+msgstr "OrderDependency Jelek"
+
+#: cups/http-support.c:1211
+msgid "Bad Request"
+msgstr "Permintaan Jelek"
+
+#: cups/snmp.c:1003
+msgid "Bad SNMP version number"
+msgstr "Nomor versi SNMP jelek"
+
+#: cups/ppd.c:347
+msgid "Bad UIConstraints"
+msgstr "UIConstraints Jelek"
+
+#: scheduler/ipp.c:1433
+#, c-format
+msgid "Bad copies value %d."
+msgstr "Nilai rangkap %d jelek."
+
+#: cups/ppd.c:355
+msgid "Bad custom parameter"
+msgstr "Parameter ubahan jelek"
+
+#: cups/http-support.c:1339
+#, c-format
+msgid "Bad device URI \"%s\"!\n"
+msgstr "URI perangkat \"%s\" jelek!\n"
+
+#: scheduler/ipp.c:2508
+#, c-format
+msgid "Bad device-uri \"%s\"!"
+msgstr "device-uri \"%s\" jelek!"
+
+#: scheduler/ipp.c:2548
+#, c-format
+msgid "Bad device-uri scheme \"%s\"!"
+msgstr "Skema device-uri \"%s\" jelek!"
+
+#: scheduler/ipp.c:9835 scheduler/ipp.c:11314
+#, c-format
+msgid "Bad document-format \"%s\"!"
+msgstr "document-format \"%s\" jelek!"
+
+#: cups/util.c:930
+msgid "Bad filename buffer!"
+msgstr "Nama berkas penyangga jelek!"
+
+#: ppdc/ppdc-import.cxx:265
+#, c-format
+msgid "Bad font attribute: %s\n"
+msgstr "Atribut huruf jelek: %s\n"
+
+#: scheduler/ipp.c:10431
+msgid "Bad job-priority value!"
+msgstr "Nilai job-priority jelek!"
+
+#: scheduler/ipp.c:1463
+#, c-format
+msgid "Bad job-sheets value \"%s\"!"
+msgstr "Nilai job-sheets \"%s\" jelek!"
+
+#: scheduler/ipp.c:1447
+msgid "Bad job-sheets value type!"
+msgstr "Jenis nilai job-sheets jelek!"
+
+#: scheduler/ipp.c:10461
+msgid "Bad job-state value!"
+msgstr "Nilai job-state jelek!"
+
+#: scheduler/ipp.c:3663 scheduler/ipp.c:4022 scheduler/ipp.c:6650
+#: scheduler/ipp.c:6792 scheduler/ipp.c:8067 scheduler/ipp.c:8322
+#: scheduler/ipp.c:9166 scheduler/ipp.c:9392 scheduler/ipp.c:9747
+#: scheduler/ipp.c:10323
+#, c-format
+msgid "Bad job-uri attribute \"%s\"!"
+msgstr "Atribut job-uri \"%s\" jelek!"
+
+#: scheduler/ipp.c:2129 scheduler/ipp.c:6197
+#, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "notify-pull-method \"%s\" jelek!"
+
+#: scheduler/ipp.c:2093 scheduler/ipp.c:6161
+#, c-format
+msgid "Bad notify-recipient-uri URI \"%s\"!"
+msgstr "URI notify-recipient-uri \"%s\" jelek!"
+
+#: scheduler/ipp.c:1479
+#, c-format
+msgid "Bad number-up value %d."
+msgstr "Nilai number-up %d jelek."
+
+#: cups/adminutil.c:303
+#, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Opsi + yang dipilih pada baris %d jelek!"
+
+#: scheduler/ipp.c:1496
+#, c-format
+msgid "Bad page-ranges values %d-%d."
+msgstr "Nilai page-ranges %d-%d jelek."
+
+#: scheduler/ipp.c:2592
+#, c-format
+msgid "Bad port-monitor \"%s\"!"
+msgstr "port-monitor \"%s\" jelek!"
+
+#: scheduler/ipp.c:2640
+#, c-format
+msgid "Bad printer-state value %d!"
+msgstr "Nilai printer-state %d jelek!"
+
+#: scheduler/ipp.c:309
+#, c-format
+msgid "Bad request ID %d!"
+msgstr "ID permintaan %d jelek!"
+
+#: scheduler/ipp.c:294
+#, c-format
+msgid "Bad request version number %d.%d!"
+msgstr ""
+
+#: cgi-bin/admin.c:1385
+msgid "Bad subscription ID!"
+msgstr "ID subskripsi jelek!"
+
+#: cgi-bin/admin.c:3301 cgi-bin/admin.c:3524
+msgid "Banners"
+msgstr "Pataka"
+
+#: filter/bannertops.c:666
+msgid "Billing Information: "
+msgstr "Informasi Tagihan: "
+
+#: ppdc/sample.c:258
+msgid "Bond Paper"
+msgstr "Kertas Surat"
+
+#: ppdc/sample.c:56
+msgid "C0 Envelope"
+msgstr "C0 Amplop"
+
+#: ppdc/sample.c:57
+msgid "C1 Envelope"
+msgstr "C1 Amplop"
+
+#: ppdc/sample.c:58
+msgid "C2 Envelope"
+msgstr "C2 Amplop"
+
+#: ppdc/sample.c:59
+msgid "C3 Envelope"
+msgstr "C3 Amplop"
+
+#: ppdc/sample.c:46
+msgid "C4"
+msgstr "C4"
+
+#: ppdc/sample.c:60
+msgid "C4 Envelope"
+msgstr "C4 Amplop"
+
+#: ppdc/sample.c:47
+msgid "C5"
+msgstr "C5"
+
+#: ppdc/sample.c:61
+msgid "C5 Envelope"
+msgstr "C5 Amplop"
+
+#: ppdc/sample.c:48
+msgid "C6"
+msgstr "C6"
+
+#: ppdc/sample.c:63
+msgid "C6 Envelope"
+msgstr "C6 Amplop"
+
+#: ppdc/sample.c:62
+msgid "C65 Envelope"
+msgstr "C65 Amplop"
+
+#: ppdc/sample.c:64
+msgid "C7 Envelope"
+msgstr "C7 Amplop"
+
+#: ppdc/sample.c:226
+msgid "CMYK"
+msgstr "CMYK"
+
+#: ppdc/sample.c:334
+msgid "CPCL Label Printer"
+msgstr ""
+
+#: cgi-bin/admin.c:1386 cgi-bin/admin.c:1425 cgi-bin/admin.c:1435
+msgid "Cancel RSS Subscription"
+msgstr "Batal Subskripsi RSS"
+
+#: cgi-bin/admin.c:1608 cgi-bin/admin.c:1772 cgi-bin/admin.c:1784
+#: cgi-bin/admin.c:1795
+msgid "Change Settings"
+msgstr "Ubah Pengaturan"
+
+#: scheduler/ipp.c:2141 scheduler/ipp.c:6209
+#, c-format
+msgid "Character set \"%s\" not supported!"
+msgstr "Set karakter \"%s\" tidak didukung!"
+
+#: ppdc/sample.c:65
+msgid "Chou3 Envelope"
+msgstr "Chou3 Amplop"
+
+#: ppdc/sample.c:66
+msgid "Chou4 Envelope"
+msgstr "Chou4 Amplop"
+
+#: cgi-bin/classes.c:180 cgi-bin/classes.c:307
+msgid "Classes"
+msgstr "Kelas"
+
+#: cgi-bin/printers.c:167
+msgid "Clean Print Heads"
+msgstr "Bersihkan Kepala Pencetak"
+
+#: ppdc/sample.c:253
+msgid "Color"
+msgstr "Warna"
+
+#: ppdc/sample.c:225
+msgid "Color Mode"
+msgstr "Modus Warna"
+
+#: berkeley/lpc.c:209
+msgid ""
+"Commands may be abbreviated.  Commands are:\n"
+"\n"
+"exit    help    quit    status  ?\n"
+msgstr ""
+"Perintah bisa saja singkat.  Perintahnya:\n"
+"\n"
+"exit    help    quit    status  ?\n"
+
+#: cups/snmp.c:1007
+msgid "Community name uses indefinite length"
+msgstr "Nama komunitas memiliki panjang tak terdefinisi"
+
+#: cups/http-support.c:1184
+msgid "Continue"
+msgstr "Lanjut"
+
+#: ppdc/sample.c:336
+msgid "Continuous"
+msgstr "Terus-menerus"
+
+#: scheduler/ipp.c:8616 scheduler/ipp.c:8632 scheduler/ipp.c:9851
+#, c-format
+msgid "Could not scan type \"%s\"!"
+msgstr "Tidak akan memindai jenis \"%s\"!"
+
+#: cups/localize.c:319
+msgid "Cover open."
+msgstr "Penutup terbuka."
+
+#: cups/http-support.c:1193
+msgid "Created"
+msgstr "Dibuat"
+
+#: filter/bannertops.c:854
+msgid "Created On: "
+msgstr "Dibuat Pada: "
+
+#: cups/ppd.c:1072 cups/ppd.c:1112 cups/ppd.c:1326 cups/ppd.c:1429
+msgid "Custom"
+msgstr "Ubahan"
+
+#: ppdc/sample.c:330
+msgid "CustominCutInterval"
+msgstr "CustominCutInterval"
+
+#: ppdc/sample.c:328
+msgid "CustominTearInterval"
+msgstr "CustominTearInterval"
+
+#: ppdc/sample.c:314
+msgid "Cut"
+msgstr "Potong"
+
+#: ppdc/sample.c:422
+msgid "Cutter"
+msgstr "Pemotong"
+
+#: ppdc/sample.c:49
+msgid "DL"
+msgstr "DL"
+
+#: ppdc/sample.c:67
+msgid "DL Envelope"
+msgstr "DL Amplop"
+
+#: ppdc/sample.c:211
+msgid "Dark"
+msgstr "Gelap"
+
+#: ppdc/sample.c:207
+msgid "Darkness"
+msgstr "Gelap"
+
+#: cgi-bin/admin.c:2068 cgi-bin/admin.c:2079 cgi-bin/admin.c:2124
+msgid "Delete Class"
+msgstr "Hapus Kelas"
+
+#: cgi-bin/admin.c:2153 cgi-bin/admin.c:2164 cgi-bin/admin.c:2209
+msgid "Delete Printer"
+msgstr "Hapus Pencetak"
+
+#: filter/bannertops.c:735
+msgid "Description: "
+msgstr "Deskripsi: "
+
+#: ppdc/sample.c:252
+msgid "DeskJet Series"
+msgstr "Seri Deskjet"
+
+#: scheduler/ipp.c:1399
+#, c-format
+msgid "Destination \"%s\" is not accepting jobs."
+msgstr "Tujuan \"%s\" bukanlah tugas yang diterima."
+
+#: cups/localize.c:353
+msgid "Developer almost empty."
+msgstr "Developer hampir kosong."
+
+#: cups/localize.c:355
+msgid "Developer empty!"
+msgstr "Developer kosong!"
+
+#: systemv/lpinfo.c:305
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+"        class = %s\n"
+"        info = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+"        location = %s\n"
+msgstr ""
+"Perangkat: uri = %s\n"
+"        class = %s\n"
+"        info = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+"        location = %s\n"
+
+#: ppdc/sample.c:407
+msgid "Direct Thermal Media"
+msgstr "Media Termal Langsung"
+
+#: ppdc/sample.c:316
+msgid "Disabled"
+msgstr "Dinonaktifkan"
+
+#: scheduler/ipp.c:6697
+#, c-format
+msgid "Document %d not found in job %d."
+msgstr "Dokumen %d tidak ditemukan di tugas %d."
+
+#: cups/localize.c:323
+msgid "Door open."
+msgstr "Pintu terbuka."
+
+#: ppdc/sample.c:50
+msgid "Double Postcard"
+msgstr "Kartu Pos Ganda"
+
+#: filter/bannertops.c:820
+msgid "Driver Name: "
+msgstr "Nama Penggerak: "
+
+#: filter/bannertops.c:831
+msgid "Driver Version: "
+msgstr "Versi Penggerak: "
+
+#: ppdc/sample.c:247
+msgid "Duplexer"
+msgstr "Pendupleks"
+
+#: ppdc/sample.c:201
+msgid "Dymo"
+msgstr "Dymo"
+
+#: filter/pstops.c:446
+#, c-format
+msgid "EMERG: Unable to allocate memory for page info: %s\n"
+msgstr "EMERG: Tidak bisa mengalokasikan memori untuk halaman info: %s\n"
+
+#: filter/pstops.c:438
+#, c-format
+msgid "EMERG: Unable to allocate memory for pages array: %s\n"
+msgstr "EMERG: Tidak bisa mengalokasikan memori untuk larik halaman: %s\n"
+
+#: ppdc/sample.c:402
+msgid "EPL1 Label Printer"
+msgstr "EPL1 Pencetak Label"
+
+#: ppdc/sample.c:405
+msgid "EPL2 Label Printer"
+msgstr "EPL2 Pencetak Label"
+
+#: driver/rastertoescpx.c:1776 driver/rastertopclx.c:1801
+#, c-format
+msgid "ERROR: %s job-id user title copies options [file]\n"
+msgstr ""
+
+#: filter/pstops.c:707
+#, c-format
+msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
+msgstr ""
+
+#: filter/pstops.c:2220
+#, c-format
+msgid "ERROR: Bad %%IncludeFeature: comment!\n"
+msgstr ""
+
+#: filter/pstops.c:1286 filter/pstops.c:1292
+#, c-format
+msgid "ERROR: Bad %%Page: comment in file!\n"
+msgstr ""
+
+#: filter/pstops.c:1363
+#, c-format
+msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
+msgstr ""
+
+#: backend/scsi-irix.c:100 backend/scsi-linux.c:114
+#, c-format
+msgid "ERROR: Bad SCSI device file \"%s\"!\n"
+msgstr "ERROR: Berkas perangkat SCSI \"%s\" jelek!\n"
+
+#: filter/pstext.c:276 filter/texttops.c:284 filter/texttops.c:295
+#, c-format
+msgid "ERROR: Bad charset file %s\n"
+msgstr "ERROR: Berkas set karakter %s jelek\n"
+
+#: filter/texttops.c:453
+#, c-format
+msgid "ERROR: Bad charset type %s\n"
+msgstr "ERROR: Jenis set karakter %s jelek\n"
+
+#: filter/textcommon.c:613
+#, c-format
+msgid "ERROR: Bad columns value %d!\n"
+msgstr "ERROR: Nilai kolom %d jelek!\n"
+
+#: filter/textcommon.c:624
+#, c-format
+msgid "ERROR: Bad cpi value %f!\n"
+msgstr "ERROR: Nilai cpi %f jelek!\n"
+
+#: filter/pstext.c:320 filter/pstext.c:357 filter/texttops.c:348
+#: filter/texttops.c:384
+#, c-format
+msgid "ERROR: Bad font description line: %s\n"
+msgstr "ERROR: Baris deskripsi huruf: %s jelek\n"
+
+#: filter/textcommon.c:635
+#, c-format
+msgid "ERROR: Bad lpi value %f!\n"
+msgstr "ERROR: Nilai lpi %f jelek!\n"
+
+#: filter/imagetoraster.c:458
+msgid "ERROR: Bad page setup!\n"
+msgstr "ERROR: Pengaturan halaman jelek!\n"
+
+#: filter/pstext.c:334 filter/texttops.c:361
+#, c-format
+msgid "ERROR: Bad text direction %s\n"
+msgstr "ERROR: Arah teks %s jelek\n"
+
+#: filter/pstext.c:371 filter/texttops.c:397
+#, c-format
+msgid "ERROR: Bad text width %s\n"
+msgstr "ERROR: Lebar teks %s jelek\n"
+
+#: backend/ipp.c:749
+msgid "ERROR: Destination printer does not exist!\n"
+msgstr "ERROR: Pencetak yang dituju tidak ada!\n"
+
+#: filter/pstops.c:696
+#, c-format
+msgid "ERROR: Duplicate %%BoundingBox: comment seen!\n"
+msgstr ""
+
+#: filter/pstops.c:648
+#, c-format
+msgid "ERROR: Duplicate %%Pages: comment seen!\n"
+msgstr ""
+
+#: backend/ipp.c:468 filter/pstops.c:303
+msgid "ERROR: Empty print file!\n"
+msgstr "ERROR: Mencetak berkas kosong!\n"
+
+#: backend/pap.c:838
+#, c-format
+msgid "ERROR: Error %d sending PAPSendData request: %s\n"
+msgstr "ERROR: Kesalahan %d mengirim permintaan PAPSendData: %s\n"
+
+#: ppdc/ppdc-catalog.cxx:338 ppdc/ppdc-catalog.cxx:350
+#, c-format
+msgid "ERROR: Expected quoted string on line %d of %s!\n"
+msgstr ""
+
+#: backend/usb-darwin.c:377 backend/usb-darwin.c:435 backend/usb-darwin.c:500
+#: backend/usb-darwin.c:518
+msgid "ERROR: Fatal USB error!\n"
+msgstr "ERROR: Kesalahan fatal USB!\n"
+
+#: filter/hpgl-input.c:139
+msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
+msgstr "ERROR: Ketidaksahan HP-GL/2 komentar terlihat, tak bisa mencetak berkas!\n"
+
+#: filter/pstops.c:1771
+#, c-format
+msgid "ERROR: Missing %%EndProlog!\n"
+msgstr ""
+
+#: filter/pstops.c:1842
+#, c-format
+msgid "ERROR: Missing %%EndSetup!\n"
+msgstr ""
+
+#: filter/bannertops.c:222
+#, c-format
+msgid "ERROR: Missing value on line %d of banner file!\n"
+msgstr "ERROR: Kehilangan nilai pada baris %d dari berkas pataka (banner)!\n"
+
+#: ppdc/ppdc-catalog.cxx:415
+#, c-format
+msgid "ERROR: Need a msgid line before any translation strings on line %d of %s!\n"
+msgstr "ERROR: Memerlukan baris msgid sebelum string translasi pada baris %d dari %s!\n"
+
+#: filter/pstops.c:759
+#, c-format
+msgid "ERROR: No %%BoundingBox: comment in header!\n"
+msgstr ""
+
+#: filter/pstops.c:762
+#, c-format
+msgid "ERROR: No %%Pages: comment in header!\n"
+msgstr ""
+
+#: backend/usb.c:200
+msgid ""
+"ERROR: No device URI found in argv[0] or in DEVICE_URI environment "
+"variable!\n"
+msgstr ""
+"ERROR: Tak ditemukan URI perangkat pada argv[0] atau dalam variabel "
+"lingkungan DEVICE_URI!\n"
+
+#: filter/pstext.c:433
+#, c-format
+msgid "ERROR: No fonts in charset file %s\n"
+msgstr "ERROR: Tidak ada huruf pada berkas set karakter %s\n"
+
+#: driver/rastertoescpx.c:1906 driver/rastertopclx.c:1931
+#: filter/rastertoepson.c:1129 filter/rastertohp.c:857
+#: filter/rastertolabel.c:1283
+msgid "ERROR: No pages found!\n"
+msgstr "ERROR: Tidak ketemu halaman!\n"
+
+#: backend/runloop.c:348
+msgid "ERROR: Out of paper!\n"
+msgstr "ERROR: Kehabisan kertas!\n"
+
+#: backend/ipp.c:1754
+msgid "ERROR: PRINTER environment variable not defined!\n"
+msgstr "ERROR: Variabel lingkungan PRINTER belum ditentukan!\n"
+
+#: backend/ipp.c:1066
+#, c-format
+msgid "ERROR: Print file was not accepted (%s)!\n"
+msgstr "ERROR: Berkas cetak tidak diterima (%s)!\n"
+
+#: backend/pap.c:521
+msgid "ERROR: Printer not responding\n"
+msgstr "ERROR: Pencetak tidak merespon\n"
+
+#: backend/ipp.c:581 backend/ipp.c:716 backend/lpd.c:848 backend/socket.c:310
+msgid "ERROR: Printer not responding!\n"
+msgstr "ERROR: Pencetak tidak merespon!\n"
+
+#: backend/pap.c:858
+msgid "ERROR: Printer sent unexpected EOF\n"
+msgstr "ERROR: Pencetak mengirim EOF yang tak diharapkan\n"
+
+#: backend/lpd.c:1052 backend/lpd.c:1199
+#, c-format
+msgid "ERROR: Remote host did not accept control file (%d)\n"
+msgstr "ERROR: Host jarak jauh tidak menerima berkas kontrol (%d)\n"
+
+#: backend/lpd.c:1147
+#, c-format
+msgid "ERROR: Remote host did not accept data file (%d)\n"
+msgstr "ERROR: Host jarak jauh tidak menerima data berkas (%d)\n"
+
+#: backend/pap.c:1694
+msgid "ERROR: There was a timeout error while sending data to the printer\n"
+msgstr "ERROR: Kehabisan waktu saat mengirim data ke pencetak\n"
+
+#: backend/ipp.c:1145
+#, c-format
+msgid "ERROR: Unable to add file %d to job: %s\n"
+msgstr "ERROR: Tidak bisa menambah berkas %d untuk tugas: %s\n"
+
+#: backend/ipp.c:1383
+#, c-format
+msgid "ERROR: Unable to cancel job %d: %s\n"
+msgstr "ERROR: Tidak bisa membatalkan tugas %d: %s\n"
+
+#: filter/pdftops.c:136
+msgid "ERROR: Unable to copy PDF file"
+msgstr "ERROR: Tidak bisa menyalin berkas PPD"
+
+#: filter/pdftops.c:412
+msgid "ERROR: Unable to create pipe"
+msgstr "ERROR: Tidak bisa membuat pipa"
+
+#: backend/lpd.c:772
+msgid "ERROR: Unable to create socket"
+msgstr "ERROR: Tidak bisa membuat soket"
+
+#: backend/ipp.c:1476
+#, c-format
+msgid "ERROR: Unable to create temporary compressed print file: %s\n"
+msgstr "ERROR: Tidak bisa membuat berkas cetak berkompresi temporer: %s\n"
+
+#: backend/ipp.c:431 backend/ipp.c:1776 backend/lpd.c:446 filter/pstops.c:2719
+#: scheduler/cupsfilter.c:1121 systemv/lpadmin.c:1453 systemv/lpadmin.c:1842
+msgid "ERROR: Unable to create temporary file"
+msgstr "ERROR: Tidak bisa membuat berkas temporer"
+
+#: backend/ipp.c:1831
+#, c-format
+msgid "ERROR: Unable to exec pictwpstops: %s\n"
+msgstr "ERROR: Tidak bisa mengeksekusi pictwpstops: %s\n"
+
+#: filter/pdftops.c:433 filter/pdftops.c:447
+msgid "ERROR: Unable to execute gs program"
+msgstr "ERROR: Tidak bisa mengeksekusi program gs"
+
+#: filter/pdftops.c:430 filter/pdftops.c:445
+msgid "ERROR: Unable to execute pdftops program"
+msgstr "ERROR: Tidak bisa mengeksekusi program pdftops"
+
+#: filter/pdftops.c:467 filter/pdftops.c:477
+msgid "ERROR: Unable to execute pstops program"
+msgstr "ERROR: Tidak bisa mengeksekusi program pstops"
+
+#: backend/ipp.c:1844
+#, c-format
+msgid "ERROR: Unable to fork pictwpstops: %s\n"
+msgstr ""
+
+#: backend/pap.c:712
+msgid "ERROR: Unable to get PAP request"
+msgstr "ERROR: Tidak bisa memperoleh permintaan PAP"
+
+#: backend/pap.c:701
+msgid "ERROR: Unable to get PAP response"
+msgstr "ERROR: Tidak bisa memperoleh respon PAP"
+
+#: backend/ipp.c:1761
+#, c-format
+msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
+msgstr "ERROR: Tidak bisa memperoleh berkas PPD untuk pencetak \"%s\" - %s.\n"
+
+#: backend/pap.c:302
+msgid "ERROR: Unable to get default AppleTalk zone"
+msgstr "ERROR: Tidak bisa memperoleh zona baku AppleTalk"
+
+#: backend/ipp.c:1232
+#, c-format
+msgid "ERROR: Unable to get job %d attributes (%s)!\n"
+msgstr "ERROR: Tidak bisa memperoleh atribut tugas %d (%s)!\n"
+
+#: backend/ipp.c:759
+#, c-format
+msgid "ERROR: Unable to get printer status (%s)!\n"
+msgstr "ERROR: Tidak bisa memperoleh status pencetak (%s)!\n"
+
+#: backend/ipp.c:422 backend/ipp.c:599 backend/lpd.c:437 backend/lpd.c:705
+#: backend/socket.c:268
+#, c-format
+msgid "ERROR: Unable to locate printer '%s'!\n"
+msgstr "ERROR: Tidak bisa menentukan lokasi pencetak '%s'!\n"
+
+#: backend/pap.c:688
+msgid "ERROR: Unable to look for PAP response"
+msgstr ""
+
+#: backend/pap.c:322
+msgid "ERROR: Unable to lookup AppleTalk printers"
+msgstr ""
+
+#: backend/pap.c:451
+msgid "ERROR: Unable to make AppleTalk address"
+msgstr "ERROR: Tidak bisa membuat alamat AppleTalk"
+
+#: filter/pstext.c:247 filter/texttops.c:248
+#, c-format
+msgid "ERROR: Unable to open \"%s\" - %s\n"
+msgstr "ERROR: Tidak bisa membuka \"%s\" - %s\n"
+
+#: filter/pstext.c:264 filter/texttops.c:268
+#, c-format
+msgid "ERROR: Unable to open %s: %s\n"
+msgstr "ERROR: Tidak bisa membuka %s: %s\n"
+
+#: driver/rastertoescpx.c:1791 driver/rastertopclx.c:1816
+msgid "ERROR: Unable to open PPD file!\n"
+msgstr "ERROR: Tidak bisa membuka berkas PPD!\n"
+
+#: filter/bannertops.c:184
+#, c-format
+msgid "ERROR: Unable to open banner file \"%s\" - %s\n"
+msgstr ""
+
+#: backend/parallel.c:249 backend/scsi-irix.c:140 backend/scsi-linux.c:154
+#: backend/serial.c:262 backend/usb-unix.c:146
+#, c-format
+msgid "ERROR: Unable to open device file \"%s\": %s\n"
+msgstr "ERROR: Tidak bisa membuka berkas perangkat \"%s\": %s\n"
+
+#: filter/pstops.c:291
+#, c-format
+msgid "ERROR: Unable to open file \"%s\" - %s\n"
+msgstr "ERROR: Tidak bisa membuka berkas \"%s\" - %s\n"
+
+#: filter/gziptoany.c:74
+#, c-format
+msgid "ERROR: Unable to open file \"%s\": %s\n"
+msgstr "ERROR: Tidak bisa membuka berkas \"%s\": %s\n"
+
+#: filter/imagetops.c:313 filter/imagetoraster.c:635
+msgid "ERROR: Unable to open image file for printing!\n"
+msgstr "ERROR: Tidak bisa membuka berkas gambar untuk mencetak!\n"
+
+#: backend/ipp.c:1492 backend/pap.c:249 backend/parallel.c:151
+#: backend/scsi.c:181 backend/serial.c:189 backend/socket.c:156
+#, c-format
+msgid "ERROR: Unable to open print file \"%s\": %s\n"
+msgstr "ERROR: Tidak bisa membuka berkas cetak \"%s\": %s\n"
+
+#: backend/usb.c:237
+#, c-format
+msgid "ERROR: Unable to open print file %s - %s\n"
+msgstr "ERROR: Tidak bisa membuka berkas cetak %s - %s\n"
+
+#: backend/lpd.c:487
+#, c-format
+msgid "ERROR: Unable to open print file %s: %s\n"
+msgstr "ERROR: Tidak bisa membuka berkas cetak %s: %s\n"
+
+#: driver/rastertoescpx.c:1806 driver/rastertopclx.c:1831
+#: filter/rastertoepson.c:1001 filter/rastertohp.c:726
+#: filter/rastertolabel.c:1148
+#, c-format
+msgid "ERROR: Unable to open raster file - %s\n"
+msgstr ""
+
+#: backend/ipp.c:1484
+#, c-format
+msgid "ERROR: Unable to open temporary compressed print file: %s\n"
+msgstr "ERROR: Tidak bisa membuka berkas cetak temporer berkompresi: %s\n"
+
+#: filter/texttops.c:200
+#, c-format
+msgid "ERROR: Unable to print %d text columns!\n"
+msgstr ""
+
+#: filter/texttops.c:179
+#, c-format
+msgid "ERROR: Unable to print %dx%d text page!\n"
+msgstr ""
+
+#: backend/serial.c:615
+msgid "ERROR: Unable to read print data"
+msgstr "ERROR: Tidak bisa membaca data yang hendak dicetak"
+
+#: backend/usb-darwin.c:602 backend/usb-darwin.c:644
+msgid "ERROR: Unable to read print data!\n"
+msgstr "ERROR: Tidak bisa membaca data yang hendak dicetak!\n"
+
+#: backend/lpd.c:789
+msgid "ERROR: Unable to reserve port"
+msgstr ""
+
+#: filter/pstops.c:563
+#, c-format
+msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
+msgstr "ERROR: Tidak bisa mencari letak %ld dalam berkas - %s\n"
+
+#: filter/pstops.c:561
+#, c-format
+msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
+msgstr "ERROR: Tidak bisa mencari letak %lld dalam berkas - %s\n"
+
+#: backend/lpd.c:603
+msgid "ERROR: Unable to send LPD command"
+msgstr "ERROR: Tidak bisa mengirim perintah LPD"
+
+#: backend/pap.c:571
+msgid "ERROR: Unable to send PAP tickle request"
+msgstr ""
+
+#: backend/pap.c:580
+msgid "ERROR: Unable to send initial PAP send data request"
+msgstr ""
+
+#: backend/scsi-irix.c:219 backend/scsi-linux.c:237
+#, c-format
+msgid "ERROR: Unable to send print data (%d)\n"
+msgstr "ERROR: Tidak bisa mengirim data yang hendak dicetak (%d)\n"
+
+#: backend/usb-darwin.c:720
+msgid "ERROR: Unable to send print data!\n"
+msgstr "ERROR: Tidak bisa mengirim data yang hendak dicetak!\n"
+
+#: backend/lpd.c:1103
+msgid "ERROR: Unable to send print file to printer"
+msgstr "ERROR: Tidak bisa mengirim data ke pencetak"
+
+#: backend/lpd.c:1117
+msgid "ERROR: Unable to send trailing nul to printer"
+msgstr ""
+
+#: backend/ipp.c:1857
+#, c-format
+msgid "ERROR: Unable to wait for pictwpstops: %s\n"
+msgstr "ERROR: Tidak bisa menunggu pictwpstops: %s\n"
+
+#: backend/ipp.c:1503
+#, c-format
+msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
+msgstr "ERROR: Tidak bisa menulis %d bita ke \"%s\": %s\n"
+
+#: backend/usb-libusb.c:169 backend/usb-libusb.c:765
+#, c-format
+msgid "ERROR: Unable to write %d bytes to printer!\n"
+msgstr "ERROR: Tidak bisa menulis %d bita ke pencetak!\n"
+
+#: backend/lpd.c:1033 backend/lpd.c:1180
+msgid "ERROR: Unable to write control file"
+msgstr "ERROR: Tidak bisa menulis berkas kontrol"
+
+#: backend/serial.c:691
+msgid "ERROR: Unable to write print data"
+msgstr "ERROR: Tidak bisa menulis data yang hendak dicetak"
+
+#: backend/runloop.c:122 backend/runloop.c:363
+#, c-format
+msgid "ERROR: Unable to write print data: %s\n"
+msgstr "ERROR: Tidak bisa menulis data yang hendak dicetak: %s\n"
+
+#: filter/imagetoraster.c:1197 filter/imagetoraster.c:1293
+#: filter/imagetoraster.c:1333
+msgid "ERROR: Unable to write raster data to driver!\n"
+msgstr ""
+
+#: backend/ipp.c:443 backend/lpd.c:456
+msgid "ERROR: Unable to write to temporary file"
+msgstr "ERROR: Tidak bisa menulis di berkas temporer"
+
+#: filter/gziptoany.c:96
+#, c-format
+msgid "ERROR: Unable to write uncompressed document data: %s\n"
+msgstr ""
+
+#: ppdc/ppdc-catalog.cxx:432
+#, c-format
+msgid "ERROR: Unexpected text on line %d of %s!\n"
+msgstr "ERROR: Teks tak diharapkan pada baris %d dari %s!\n"
+
+#: backend/ipp.c:346
+#, c-format
+msgid "ERROR: Unknown encryption option value \"%s\"!\n"
+msgstr "ERROR: Nilai opsi enkripsi \"%s\" tak dikenal!\n"
+
+#: backend/lpd.c:354
+#, c-format
+msgid "ERROR: Unknown file order \"%s\"\n"
+msgstr "ERROR: Urutan berkas \"%s\" tak dikenal\n"
+
+#: backend/lpd.c:326
+#, c-format
+msgid "ERROR: Unknown format character \"%c\"\n"
+msgstr "ERROR: Format karakter \"%c\" tak dikenal\n"
+
+#: ppdc/ppdc-catalog.cxx:460
+#, c-format
+msgid "ERROR: Unknown message catalog format for \"%s\"!\n"
+msgstr "ERROR: Format katalog pesan \"%s\" tak dikenal!\n"
+
+#: backend/ipp.c:392
+#, c-format
+msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
+msgstr "ERROR: Opsi \"%s\" dengan nilai \"%s\" tak dikenal!\n"
+
+#: backend/lpd.c:340
+#, c-format
+msgid "ERROR: Unknown print mode \"%s\"\n"
+msgstr "ERROR: Modus cetak \"%s\" tak dikenal\n"
+
+#: backend/ipp.c:363
+#, c-format
+msgid "ERROR: Unknown version option value \"%s\"!\n"
+msgstr "ERROR: Nilai opsi versi \"%s\" tak dikenal!\n"
+
+#: filter/pstops.c:2418
+#, c-format
+msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
+msgstr "ERROR: Nilai kecerahan %s tak didukung, gunakanlah brightness=100!\n"
+
+#: filter/pstops.c:2487
+#, c-format
+msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
+msgstr "ERROR: Nilai gama %s tak didukung, gunakanlah gamma=1000!\n"
+
+#: filter/pstops.c:2541
+#, c-format
+msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
+msgstr "ERROR: Nilai number-up %d tak didukung, gunakanlah number-up=1!\n"
+
+#: filter/pstops.c:2574
+#, c-format
+msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
+msgstr ""
+"ERROR: Nilai number-up-layout %s tak didukung, gunakanlah number-up-"
+"layout=lrtb!\n"
+
+#: filter/pstops.c:2624
+#, c-format
+msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
+msgstr "ERROR: Nilai page-border %s tak didukung, gunakanlah page-border=none!\n"
+
+#: filter/pstops.c:2090
+#, c-format
+msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
+msgstr "ERROR: Kelebihan doc_printf (%d bita) terdeteksi, dibatalkan!\n"
+
+#: backend/ipp.c:1876
+#, c-format
+msgid "ERROR: pictwpstops exited on signal %d!\n"
+msgstr "ERROR: pictwpstops tertutup pada sinyal %d!\n"
+
+#: backend/ipp.c:1873
+#, c-format
+msgid "ERROR: pictwpstops exited with status %d!\n"
+msgstr "ERROR: pictwpstops tertutup dengan status %d!\n"
+
+#: backend/ipp.c:609 backend/lpd.c:877 backend/socket.c:333
+msgid ""
+"ERROR: recoverable: Unable to connect to printer; will retry in 30 "
+"seconds...\n"
+msgstr ""
+"ERROR: pemulihan: Tidak bisa menghubungi pencetak; akan mencoba ulang dalam 30 "
+"detik...\n"
+
+#: backend/pap.c:629
+msgid "ERROR: select() failed"
+msgstr "ERROR: select() gagal"
+
+#: backend/lpd.c:940
+msgid "ERROR: unable to stat print file"
+msgstr "ERROR: tak dapat memulai berkas yang hendak dicetak"
+
+#: cgi-bin/admin.c:1823 cgi-bin/admin.c:1835 cgi-bin/admin.c:1889
+#: cgi-bin/admin.c:1896 cgi-bin/admin.c:1931 cgi-bin/admin.c:1944
+#: cgi-bin/admin.c:1968 cgi-bin/admin.c:2041
+msgid "Edit Configuration File"
+msgstr "Sunting Berkas Konfigurasi"
+
+#: cups/adminutil.c:348
+msgid "Empty PPD file!"
+msgstr "Berkas PPD kosong!"
+
+#: cgi-bin/admin.c:3545
+msgid "Ending Banner"
+msgstr "Akhir Pataka"
+
+#: systemv/lppasswd.c:205
+msgid "Enter old password:"
+msgstr "Masukkan sandi lama:"
+
+#: systemv/lppasswd.c:234
+msgid "Enter password again:"
+msgstr "Masukkan lagi sandinya:"
+
+#: systemv/lppasswd.c:223
+msgid "Enter password:"
+msgstr "Masukkan sandi:"
+
+#: scheduler/client.c:2392
+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 ""
+"Masukkan nama pengguna dan sandi Anda atau nama pengguna dan sandi root "
+"untuk mengakses halaman ini. Apabila Anda menggunakan otentikasi Kerberos, "
+"pastikan bahwa Anda memiliki tiket Kerberos yang sah."
+
+#: ppdc/sample.c:241
+msgid "Envelope Feed"
+msgstr "Amplop Feed"
+
+#: ppdc/sample.c:212
+msgid "Epson"
+msgstr "Epson"
+
+#: cgi-bin/admin.c:3588
+msgid "Error Policy"
+msgstr "Polis Kesalahan"
+
+#: systemv/lpinfo.c:109 systemv/lpmove.c:94
+msgid "Error: need hostname after '-h' option!\n"
+msgstr "Kesalahan: perlu nama host usai opsi '-h'!\n"
+
+#: ppdc/sample.c:326
+msgid "Every 10 Labels"
+msgstr "Tiap 10 Label"
+
+#: ppdc/sample.c:318
+msgid "Every 2 Labels"
+msgstr "Tiap 2 Label"
+
+#: ppdc/sample.c:319
+msgid "Every 3 Labels"
+msgstr "Tiap 3 Label"
+
+#: ppdc/sample.c:320
+msgid "Every 4 Labels"
+msgstr "Tiap 4 Label"
+
+#: ppdc/sample.c:321
+msgid "Every 5 Labels"
+msgstr "Tiap 5 Label"
+
+#: ppdc/sample.c:322
+msgid "Every 6 Labels"
+msgstr "Tiap 6 Label"
+
+#: ppdc/sample.c:323
+msgid "Every 7 Labels"
+msgstr "Tiap 7 Label"
+
+#: ppdc/sample.c:324
+msgid "Every 8 Labels"
+msgstr "Tiap 8 Label"
+
+#: ppdc/sample.c:325
+msgid "Every 9 Labels"
+msgstr "Tiap 9 Label"
+
+#: ppdc/sample.c:317
+msgid "Every Label"
+msgstr "Tiap Label"
+
+#: cups/http-support.c:1239
+msgid "Expectation Failed"
+msgstr ""
+
+#: cgi-bin/admin.c:2331 cgi-bin/admin.c:2350
+msgid "Export Printers to Samba"
+msgstr "Ekspor Pencetak melalui Samba"
+
+#: systemv/cupstestdsc.c:176 systemv/cupstestdsc.c:193
+#: systemv/cupstestdsc.c:218 systemv/cupstestdsc.c:235
+#: systemv/cupstestdsc.c:259 systemv/cupstestdsc.c:277
+#: systemv/cupstestdsc.c:306 systemv/cupstestdsc.c:343
+#: systemv/cupstestdsc.c:353 systemv/cupstestdsc.c:363
+#: systemv/cupstestdsc.c:373 systemv/cupstestdsc.c:383
+#: systemv/cupstestdsc.c:391
+msgid "FAIL\n"
+msgstr "GAGAL\n"
+
+#: ppdc/sample.c:132
+msgid "File Folder"
+msgstr "Map"
+
+#: ppdc/sample.c:141
+msgid "File Folder - 9/16 x 3 7/16\""
+msgstr "Map - 9/16 x 3 7/16\""
+
+#: scheduler/ipp.c:2528
+#, c-format
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"Berkas URI perangkat telah dinonaktifkan! Untuk mengaktifkannya, lihatlah "
+"petunjuk FileDevice dalam \"%s/cupsd.conf\"."
+
+#: ppdc/sample.c:92
+msgid "Folio"
+msgstr "Folio"
+
+#: cups/http-support.c:1218
+msgid "Forbidden"
+msgstr "Terlarang"
+
+#: cups/localize.c:345
+msgid "Fuser temperature high!"
+msgstr "Suhu fusi tinggi!"
+
+#: cups/localize.c:347
+msgid "Fuser temperature low!"
+msgstr "Suhu fusi rendah!"
+
+#: cups/ppd.c:700 cups/ppd.c:1230
+msgid "General"
+msgstr "Umum"
+
+#: ppdc/sample.c:231
+msgid "Generic"
+msgstr "Umum"
+
+#: ppdc/sample.c:89
+msgid "German FanFold"
+msgstr "FanFold Jerman"
+
+#: ppdc/sample.c:90
+msgid "German FanFold Legal"
+msgstr "FanFold Legal Jerman"
+
+#: cups/snmp.c:1017
+msgid "Get-Response-PDU uses indefinite length"
+msgstr "Get-Response-PDU memiliki panjang tak terdefinisi"
+
+#: ppdc/sample.c:261
+msgid "Glossy Paper"
+msgstr "Kertas Glosi"
+
+#: scheduler/ipp.c:3641 scheduler/ipp.c:3947 scheduler/ipp.c:6627
+#: scheduler/ipp.c:6769 scheduler/ipp.c:8044 scheduler/ipp.c:9143
+#: scheduler/ipp.c:9369 scheduler/ipp.c:9724 scheduler/ipp.c:10300
+msgid "Got a printer-uri attribute but no job-id!"
+msgstr "Memperoleh atribut printer-uri tetapi bukan job-id!"
+
+#: ppdc/sample.c:227
+msgid "Grayscale"
+msgstr "Skala Abu-abu"
+
+#: ppdc/sample.c:251
+msgid "HP"
+msgstr "HP"
+
+#: ppdc/sample.c:133
+msgid "Hanging Folder"
+msgstr "Map Gantung"
+
+#: ppdc/sample.c:142
+msgid "Hanging Folder - 9/16 x 2\""
+msgstr "Map Gantung - 9/16 x 2\""
+
+#: backend/pap.c:296
+msgid "INFO: AppleTalk disabled in System Preferences\n"
+msgstr "INFO: AppleTalk ditiadakan pada Preferensi Sistem\n"
+
+#: backend/pap.c:511
+msgid "INFO: AppleTalk disabled in System Preferences.\n"
+msgstr "INFO: AppleTalk ditiadakan pada Preferensi Sistem.\n"
+
+#: backend/ipp.c:1359
+msgid "INFO: Canceling print job...\n"
+msgstr "INFO: Membatalkan tugas mencetak...\n"
+
+#: backend/ipp.c:629 backend/lpd.c:896 backend/socket.c:354
+msgid "INFO: Connected to printer...\n"
+msgstr "INFO: Terhubung ke pencetak...\n"
+
+#: backend/ipp.c:544 backend/lpd.c:729 backend/socket.c:274
+msgid "INFO: Connecting to printer...\n"
+msgstr "INFO: Menghubungi pencetak...\n"
+
+#: backend/lpd.c:1055 backend/lpd.c:1202
+msgid "INFO: Control file sent successfully\n"
+msgstr "INFO: Berkas kontrol berhasil dikirim\n"
+
+#: backend/ipp.c:435 backend/lpd.c:450
+msgid "INFO: Copying print data...\n"
+msgstr "INFO: Menyalin data yang hendak dicetak...\n"
+
+#: backend/lpd.c:1150
+msgid "INFO: Data file sent successfully\n"
+msgstr "INFO: Berkas data berhasil dikirim\n"
+
+#: driver/rastertoescpx.c:1887 driver/rastertopclx.c:1912
+#, c-format
+msgid "INFO: Finished page %d...\n"
+msgstr "INFO: Halaman selesai %d...\n"
+
+#: filter/imagetoraster.c:1140
+#, c-format
+msgid "INFO: Formatting page %d...\n"
+msgstr "INFO: Memformat halaman %d...\n"
+
+#: filter/imagetoraster.c:621
+msgid "INFO: Loading image file...\n"
+msgstr "INFO: Memuat berkas gambar...\n"
+
+#: cups/http-support.c:1428
+msgid "INFO: Looking for printer...\n"
+msgstr "INFO: Mencari pencetak...\n"
+
+#: backend/pap.c:928
+msgid "INFO: Opening connection\n"
+msgstr "INFO: Membuka hubungan\n"
+
+#: backend/socket.c:425
+msgid "INFO: Print file sent, waiting for printer to finish...\n"
+msgstr "INFO: Berkas cetak dikirim, menunggu pencetak selesai mengerjakannya...\n"
+
+#: backend/ipp.c:1044 backend/usb-unix.c:132
+msgid "INFO: Printer busy; will retry in 10 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 10 detik lagi...\n"
+
+#: backend/parallel.c:236 backend/scsi-irix.c:147 backend/scsi-linux.c:161
+#: backend/serial.c:256
+msgid "INFO: Printer busy; will retry in 30 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 30 detik lagi...\n"
+
+#: backend/usb-unix.c:437
+msgid "INFO: Printer busy; will retry in 5 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 5 detik lagi...\n"
+
+#: backend/ipp.c:742 backend/ipp.c:1055
+#, c-format
+msgid "INFO: Printer does not support IPP/%d.%d, trying IPP/1.0...\n"
+msgstr "INFO: Pencetak tidak mendukung IPP/%d.%d, mencoba IPP/1.0...\n"
+
+#: backend/usb-unix.c:521
+msgid "INFO: Printer is busy; will retry in 5 seconds...\n"
+msgstr "INFO: Pencetak sibuk; dicoba ulang 5 detik lagi...\n"
+
+#: backend/runloop.c:357
+msgid "INFO: Printer is currently off-line.\n"
+msgstr "INFO: Pencetak saat ini tak terhubung.\n"
+
+#: backend/runloop.c:243
+msgid "INFO: Printer is currently offline.\n"
+msgstr "INFO: Pencetak saat ini tak terhubung.\n"
+
+#: backend/runloop.c:379 backend/usb-darwin.c:1254
+msgid "INFO: Printer is now online.\n"
+msgstr "INFO: Pencetak saat ini terhubung.\n"
+
+#: backend/usb-darwin.c:1272
+msgid "INFO: Printer is offline.\n"
+msgstr "INFO: Pencetak saat ini tak terhubung.\n"
+
+#: backend/parallel.c:242 backend/usb-unix.c:139
+msgid "INFO: Printer not connected; will retry in 30 seconds...\n"
+msgstr "INFO: Pencetak tak terhubung; dicoba ulang 30 detik lagi...\n"
+
+#: driver/rastertoescpx.c:1873 driver/rastertopclx.c:1895
+#: filter/rastertoepson.c:1080 filter/rastertohp.c:803
+#: filter/rastertolabel.c:1235
+#, c-format
+msgid "INFO: Printing page %d, %d%% complete...\n"
+msgstr "INFO: Mencetak halaman %d, %d%% selesai...\n"
+
+#: filter/imagetops.c:808
+#, c-format
+msgid "INFO: Printing page %d...\n"
+msgstr "INFO: Mencetak halaman %d...\n"
+
+#: backend/socket.c:457 driver/rastertoescpx.c:1911 driver/rastertopclx.c:1936
+#: filter/rastertoepson.c:1134 filter/rastertohp.c:862
+#: filter/rastertolabel.c:1288
+msgid "INFO: Ready to print.\n"
+msgstr "INFO: Siap mencetak.\n"
+
+#: backend/lpd.c:1174
+#, c-format
+msgid "INFO: Sending control file (%lu bytes)\n"
+msgstr "INFO: Mengirim berkas kontrol (%lu bita)\n"
+
+#: backend/lpd.c:1027
+#, c-format
+msgid "INFO: Sending control file (%u bytes)\n"
+msgstr "INFO: Mengirim berkas kontrol (%u bita)\n"
+
+#: backend/pap.c:564
+msgid "INFO: Sending data\n"
+msgstr "INFO: Mengirim data\n"
+
+#: backend/lpd.c:1086
+#, c-format
+msgid "INFO: Sending data file (%ld bytes)\n"
+msgstr "INFO: Mengirim berkas data (%ld bita)\n"
+
+#: backend/lpd.c:1084
+#, c-format
+msgid "INFO: Sending data file (%lld bytes)\n"
+msgstr "INFO: Mengirim berkas data (%lld bita)\n"
+
+#: backend/usb-darwin.c:534
+msgid "INFO: Sending print data...\n"
+msgstr "INFO: Mengirim data yang hendak dicetak...\n"
+
+#: backend/parallel.c:294 backend/socket.c:404 backend/usb-unix.c:201
+#, c-format
+msgid "INFO: Sent print file, %ld bytes...\n"
+msgstr "INFO: Mengirim berkas yang hendak dicetak, %ld bita...\n"
+
+#: backend/parallel.c:292 backend/socket.c:402 backend/usb-unix.c:199
+#, c-format
+msgid "INFO: Sent print file, %lld bytes...\n"
+msgstr "INFO: Mengirim berkas yang hendak dicetak, %lld bita...\n"
+
+#: backend/lpd.c:1098
+#, c-format
+msgid "INFO: Spooling LPR job, %.0f%% complete...\n"
+msgstr ""
+
+#: driver/rastertoescpx.c:1859 driver/rastertopclx.c:1880
+#, c-format
+msgid "INFO: Starting page %d...\n"
+msgstr "INFO: Memulai halaman %d...\n"
+
+#: backend/ipp.c:561 backend/ipp.c:823 backend/lpd.c:829
+#: backend/parallel.c:221 backend/scsi-irix.c:125 backend/scsi-linux.c:139
+#: backend/serial.c:241 backend/socket.c:293 backend/usb-unix.c:117
+msgid "INFO: Unable to contact printer, queuing on next printer in class...\n"
+msgstr ""
+"INFO: Tidak bisa menghubungi pencetak, diantrikan ke pencetak selanjutnya pada "
+"kelas...\n"
+
+#: backend/pap.c:309
+#, c-format
+msgid "INFO: Using default AppleTalk zone \"%s\"\n"
+msgstr "INFO: Menggunakan zona baku AppleTalk \"%s\"\n"
+
+#: backend/ipp.c:1170
+msgid "INFO: Waiting for job to complete...\n"
+msgstr "INFO: Menunggu tugas diselesaikan...\n"
+
+#: backend/usb-darwin.c:454 backend/usb-libusb.c:117
+msgid "INFO: Waiting for printer to become available...\n"
+msgstr "INFO: Menunggu pencetak tersedia...\n"
+
+#: ppdc/sample.c:93
+msgid "ISO B0"
+msgstr "ISO B0"
+
+#: ppdc/sample.c:94
+msgid "ISO B1"
+msgstr "ISO B1"
+
+#: ppdc/sample.c:104
+msgid "ISO B10"
+msgstr "ISO B10"
+
+#: ppdc/sample.c:95
+msgid "ISO B2"
+msgstr "ISO B2"
+
+#: ppdc/sample.c:96
+msgid "ISO B3"
+msgstr "ISO B3"
+
+#: ppdc/sample.c:97
+msgid "ISO B4"
+msgstr "ISO B4"
+
+#: ppdc/sample.c:69
+msgid "ISO B4 Envelope"
+msgstr "ISO B4 Amplop"
+
+#: ppdc/sample.c:98
+msgid "ISO B5"
+msgstr "ISO B5"
+
+#: ppdc/sample.c:99
+msgid "ISO B5 (Oversize)"
+msgstr "ISO B5 (Besar)"
+
+#: ppdc/sample.c:70
+msgid "ISO B5 Envelope"
+msgstr "ISO B5 Amplop"
+
+#: ppdc/sample.c:100
+msgid "ISO B6"
+msgstr "ISO B6"
+
+#: ppdc/sample.c:71
+msgid "ISO B6 Envelope"
+msgstr "ISO B6 Amplop"
+
+#: ppdc/sample.c:101
+msgid "ISO B7"
+msgstr "ISO B7"
+
+#: ppdc/sample.c:102
+msgid "ISO B8"
+msgstr "ISO B8"
+
+#: ppdc/sample.c:103
+msgid "ISO B9"
+msgstr "ISO B9"
+
+#: cups/ppd.c:350
+msgid "Illegal control character"
+msgstr "Karakter kontrol ilegal"
+
+#: cups/ppd.c:351
+msgid "Illegal main keyword string"
+msgstr "String kata kunci utama ilegal"
+
+#: cups/ppd.c:352
+msgid "Illegal option keyword string"
+msgstr "String opsi kata kunci ilegal"
+
+#: cups/ppd.c:353
+msgid "Illegal translation string"
+msgstr "String translasi ilegal"
+
+#: cups/ppd.c:354
+msgid "Illegal whitespace character"
+msgstr ""
+
+#: cups/localize.c:337
+msgid "Ink/toner almost empty."
+msgstr "Tinta/toner hampir kosong."
+
+#: cups/localize.c:339
+msgid "Ink/toner empty!"
+msgstr "Tinta/toner kosong!"
+
+#: cups/localize.c:341
+msgid "Ink/toner waste bin almost full."
+msgstr "Baki buangan tinta/toner hampir penuh."
+
+#: cups/localize.c:343
+msgid "Ink/toner waste bin full!"
+msgstr "Baki buangan tinta/toner sudah penuh!"
+
+#: ppdc/sample.c:246
+msgid "Installable Options"
+msgstr ""
+
+#: ppdc/sample.c:249
+msgid "Installed"
+msgstr ""
+
+#: ppdc/sample.c:264
+msgid "IntelliBar Label Printer"
+msgstr "Pencetak Label IntelliBar"
+
+#: ppdc/sample.c:263
+msgid "Intellitech"
+msgstr "Intellitech"
+
+#: cups/localize.c:321
+msgid "Interlock open."
+msgstr ""
+
+#: cups/http-support.c:1245
+msgid "Internal Server Error"
+msgstr "Kesalahan Internal Server"
+
+#: cups/ppd.c:341
+msgid "Internal error"
+msgstr "Kesalahan internal"
+
+#: ppdc/sample.c:130
+msgid "Internet Postage 2-Part"
+msgstr "Perangko Internet 2-Bagian"
+
+#: ppdc/sample.c:139
+msgid "Internet Postage 2-Part - 2 1/4 x 7 1/2\""
+msgstr "Perangko Internet 2-Bagian - 2 1/4 x 7 1/2\""
+
+#: ppdc/sample.c:131
+msgid "Internet Postage 3-Part"
+msgstr "Perangko Internet 3-Bagian"
+
+#: ppdc/sample.c:140
+msgid "Internet Postage 3-Part - 2 1/4 x 7\""
+msgstr "Perangko Internet 3-Bagian - 2 1/4 x 7\""
+
+#: backend/ipp.c:206
+msgid "Internet Printing Protocol"
+msgstr "Protokol Cetak Internet"
+
+#: ppdc/sample.c:68
+msgid "Invite Envelope"
+msgstr "Amplop Undangan"
+
+#: ppdc/sample.c:72
+msgid "Italian Envelope"
+msgstr "Amplop Italia"
+
+#: cups/ppd.c:1348
+msgid "JCL"
+msgstr "JCL"
+
+#: scheduler/ipp.c:9442
+#, c-format
+msgid "Job #%d cannot be restarted - no files!"
+msgstr "Tugas #%d tidak bisa dicetak ulang - tidak ada berkas!"
+
+#: scheduler/ipp.c:3682 scheduler/ipp.c:4050 scheduler/ipp.c:6668
+#: scheduler/ipp.c:6810 scheduler/ipp.c:7921 scheduler/ipp.c:8085
+#: scheduler/ipp.c:8295 scheduler/ipp.c:8340 scheduler/ipp.c:9184
+#: scheduler/ipp.c:9410 scheduler/ipp.c:9765 scheduler/ipp.c:10341
+#, c-format
+msgid "Job #%d does not exist!"
+msgstr "Tugas #%d tidak ada!"
+
+#: scheduler/ipp.c:4082
+#, c-format
+msgid "Job #%d is already aborted - can't cancel."
+msgstr "Tugas #%d telah dibatalkan - tidak bisa dibatalkan lagi."
+
+#: scheduler/ipp.c:4076
+#, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "Tugas #%d sudah dibatalkan - tidak bisa dibatalkan lagi."
+
+#: scheduler/ipp.c:4088
+#, c-format
+msgid "Job #%d is already completed - can't cancel."
+msgstr "Tugas #%d sudah diselesaikan - tidak bisa dibatalkan."
+
+#: scheduler/ipp.c:8382 scheduler/ipp.c:10356
+#, c-format
+msgid "Job #%d is finished and cannot be altered!"
+msgstr "Tugas #%d sudah diselesaikan dan tidak dapat diubah!"
+
+#: scheduler/ipp.c:9424
+#, c-format
+msgid "Job #%d is not complete!"
+msgstr "Tugas #%d tidak selesai!"
+
+#: scheduler/ipp.c:3697
+#, c-format
+msgid "Job #%d is not held for authentication!"
+msgstr "Tugas #%d tidak ditahan untuk otentikasi!"
+
+#: scheduler/ipp.c:9198
+#, c-format
+msgid "Job #%d is not held!"
+msgstr "Tugas #%d tidak ditahan!"
+
+#: scheduler/ipp.c:7899
+#, c-format
+msgid "Job #%s does not exist!"
+msgstr "Tugas #%s tidak ada!"
+
+#: scheduler/ipp.c:6295
+#, c-format
+msgid "Job %d not found!"
+msgstr "Tugas %d tidak ketemu!"
+
+#: cgi-bin/ipp-var.c:1050
+msgid "Job Completed"
+msgstr "Tugas Diselesaikan"
+
+#: cgi-bin/ipp-var.c:1048
+msgid "Job Created"
+msgstr "Tugas Dibuat"
+
+#: filter/bannertops.c:623
+msgid "Job ID: "
+msgstr "ID Tugas: "
+
+#: cgi-bin/ipp-var.c:1054
+msgid "Job Options Changed"
+msgstr "Perubahan Opsi Tugas"
+
+#: cgi-bin/ipp-var.c:1052
+msgid "Job Stopped"
+msgstr "Tugas Dihentikan"
+
+#: filter/bannertops.c:631
+msgid "Job UUID: "
+msgstr "UUID Tugas: "
+
+#: scheduler/ipp.c:10439
+msgid "Job is completed and cannot be changed."
+msgstr "Tugas sudah diselesaikan dan tidak bisa diubah."
+
+#: cgi-bin/jobs.c:197
+msgid "Job operation failed:"
+msgstr "Operasi tugas gagal:"
+
+#: scheduler/ipp.c:10475 scheduler/ipp.c:10494 scheduler/ipp.c:10505
+msgid "Job state cannot be changed."
+msgstr "Status tugas tidak bisa diubah."
+
+#: scheduler/ipp.c:9289
+msgid "Job subscriptions cannot be renewed!"
+msgstr "Subkripsi tugas tidak bisa diperbaharui!"
+
+#: cgi-bin/jobs.c:102 cgi-bin/jobs.c:113 cgi-bin/jobs.c:194
+msgid "Jobs"
+msgstr "Tugas"
+
+#: ppdc/sample.c:73
+msgid "Kaku2 Envelope"
+msgstr "Kaku2 Amplop"
+
+#: ppdc/sample.c:74
+msgid "Kaku3 Envelope"
+msgstr "Kaku3 Amplop"
+
+#: backend/lpd.c:178
+msgid "LPD/LPR Host or Printer"
+msgstr "Host atau Pencetak LPD/LPR"
+
+#: ppdc/sample.c:202
+msgid "Label Printer"
+msgstr "Pencetak Label"
+
+#: ppdc/sample.c:417
+msgid "Label Top"
+msgstr "Label Atas"
+
+#: scheduler/ipp.c:2150 scheduler/ipp.c:6218
+#, c-format
+msgid "Language \"%s\" not supported!"
+msgstr "Bahasa \"%s\" tidak didukung!"
+
+#: ppdc/sample.c:127
+msgid "Large Address"
+msgstr "Alamat Besar"
+
+#: ppdc/sample.c:136
+msgid "Large Address - 1 4/10 x 3 1/2\""
+msgstr "Alamat Besar - 1 4/10 x 3 1/2\""
+
+#: ppdc/sample.c:262
+msgid "LaserJet Series PCL 4/5"
+msgstr "Seri LaserJet PCL 4/5"
+
+#: ppdc/sample.c:208
+msgid "Light"
+msgstr "Cahaya"
+
+#: cups/ppd.c:349
+msgid "Line longer than the maximum allowed (255 characters)"
+msgstr "Baris melebihi panjang yang diperbolehkan (255 karakter)"
+
+#: cgi-bin/admin.c:2368
+msgid "List Available Printers"
+msgstr "Daftar Pencetak yang Tersedia"
+
+#: filter/bannertops.c:744
+msgid "Location: "
+msgstr "Lokasi: "
+
+#: ppdc/sample.c:244
+msgid "Long-Edge (Portrait)"
+msgstr "Sisi Panjang (Tegak)"
+
+#: filter/bannertops.c:753
+msgid "Make and Model: "
+msgstr "Pembuat dan Model: "
+
+#: ppdc/sample.c:240
+msgid "Manual Feed"
+msgstr ""
+
+#: filter/bannertops.c:780
+msgid "Media Dimensions: "
+msgstr "Dimensi Media: "
+
+#: filter/bannertops.c:800
+msgid "Media Limits: "
+msgstr "Batas Media: "
+
+#: filter/bannertops.c:769
+msgid "Media Name: "
+msgstr "Nama Media: "
+
+#: cups/ppd.c:747 cups/ppd.c:1285
+msgid "Media Size"
+msgstr "Ukuran Media"
+
+#: cups/ppd.c:751 cups/ppd.c:1289 ppdc/sample.c:234
+msgid "Media Source"
+msgstr "Sumber Media"
+
+#: ppdc/sample.c:335
+msgid "Media Tracking"
+msgstr ""
+
+#: cups/ppd.c:749 cups/ppd.c:1287 ppdc/sample.c:256
+msgid "Media Type"
+msgstr "Jenis Media"
+
+#: cups/localize.c:310
+msgid "Media jam!"
+msgstr "Media tersangkut!"
+
+#: cups/localize.c:327
+msgid "Media tray almost empty."
+msgstr "Baki media hampir kosong."
+
+#: cups/localize.c:329
+msgid "Media tray empty!"
+msgstr "Baki media kosong!"
+
+#: cups/localize.c:325
+msgid "Media tray missing!"
+msgstr "Baki media hilang!"
+
+#: cups/localize.c:308
+msgid "Media tray needs to be filled."
+msgstr "Baki media perlu diisi."
+
+#: ppdc/sample.c:209
+msgid "Medium"
+msgstr ""
+
+#: cups/ppd.c:338
+msgid "Memory allocation error"
+msgstr "Kesalahan alokasi memori"
+
+#: cups/ppd.c:339
+msgid "Missing PPD-Adobe-4.x header"
+msgstr "Kehilangan tajuk PPD-Adobe-4.x"
+
+#: cups/ppd.c:348
+msgid "Missing asterisk in column 1"
+msgstr "Kehilangan asterik pada kolom 1"
+
+#: scheduler/ipp.c:6690
+msgid "Missing document-number attribute!"
+msgstr "Kehilangan atribut document-number!"
+
+#: cups/adminutil.c:284
+#, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Kehilangan tanda kutip pada baris %d!"
+
+#: cgi-bin/admin.c:2080 cgi-bin/admin.c:2165 cgi-bin/admin.c:2801
+#: cgi-bin/admin.c:3055 cgi-bin/admin.c:3166 cgi-bin/admin.c:3844
+msgid "Missing form variable!"
+msgstr "Kehilangan variabel formulir!"
+
+#: scheduler/ipp.c:7090
+msgid "Missing notify-subscription-ids attribute!"
+msgstr "Kehilangan atribut notify-subscription-ids!"
+
+#: scheduler/ipp.c:3820
+msgid "Missing requesting-user-name attribute!"
+msgstr "Kehilangan atribut requesting-user-name!"
+
+#: scheduler/ipp.c:477
+msgid "Missing required attributes!"
+msgstr "Kehilangan atribut yang diperlukan!"
+
+#: cups/adminutil.c:265
+#, c-format
+msgid "Missing value on line %d!"
+msgstr "Kehilangan nilai pada baris %d!"
+
+#: cups/ppd.c:340
+msgid "Missing value string"
+msgstr "Kehilangan string nilai"
+
+#: systemv/lpinfo.c:475
+#, c-format
+msgid ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+msgstr ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+
+#: cgi-bin/admin.c:480
+msgid "Modify Class"
+msgstr "Ubah Kelas"
+
+#: cgi-bin/admin.c:778
+msgid "Modify Printer"
+msgstr "Ubah Pencetak"
+
+#: ppdc/sample.c:111
+msgid "Monarch"
+msgstr "Monarki"
+
+#: ppdc/sample.c:75
+msgid "Monarch Envelope"
+msgstr "Amplop Monarki"
+
+#: cgi-bin/ipp-var.c:421 cgi-bin/ipp-var.c:512
+msgid "Move All Jobs"
+msgstr "Pindah Semua Tugas"
+
+#: cgi-bin/ipp-var.c:360 cgi-bin/ipp-var.c:419 cgi-bin/ipp-var.c:510
+msgid "Move Job"
+msgstr "Pindah Tugas"
+
+#: cups/http-support.c:1202
+msgid "Moved Permanently"
+msgstr "Dipindahkan Permanen"
+
+#: backend/ipp.c:1092
+#, c-format
+msgid "NOTICE: Print file accepted - job ID %d.\n"
+msgstr "NOTICE: Berkas yang hendak dicetak diterima - ID tugas %d.\n"
+
+#: backend/ipp.c:1086
+msgid "NOTICE: Print file accepted - job ID unknown.\n"
+msgstr "NOTICE: Berkas yang hendak dicetak diterima - ID tugas tak dikenal.\n"
+
+#: cups/ppd.c:337
+msgid "NULL PPD file pointer"
+msgstr ""
+
+#: cups/snmp.c:1054
+msgid "Name OID uses indefinite length"
+msgstr "Nama OID memiliki panjang tak terdefinisi"
+
+#: scheduler/ipp.c:1196
+msgid "Nested classes are not allowed!"
+msgstr "Kelas bersarang tidak diperbolehkan!"
+
+#: ppdc/sample.c:401
+msgid "Never"
+msgstr "Tidak Pernah"
+
+#: ppdc/sample.c:228
+msgid "New Stylus Color Series"
+msgstr "Seri Stylus Color Baru"
+
+#: ppdc/sample.c:230
+msgid "New Stylus Photo Series"
+msgstr "Seri Stylus Photo Baru"
+
+#: cups/ppd.c:1877
+msgid "No"
+msgstr "Tidak"
+
+#: cups/http-support.c:1199
+msgid "No Content"
+msgstr "Tak Ada Isi"
+
+#: cups/util.c:1289
+msgid "No PPD name!"
+msgstr "Tidak ada nama PPD!"
+
+#: cups/snmp.c:1048
+msgid "No VarBind SEQUENCE"
+msgstr "Tidak ada VarBind SEQUENCE"
+
+#: cups/adminutil.c:799
+msgid "No Windows printer drivers are installed!"
+msgstr "Tidak ada penggerak pencetak Windows yang terpasang!"
+
+#: cups/request.c:509 cups/request.c:775
+msgid "No active connection"
+msgstr "Tidak ada koneksi yang aktif"
+
+#: scheduler/ipp.c:3998
+#, c-format
+msgid "No active jobs on %s!"
+msgstr "Tidak ada tugas yang aktif pada %s!"
+
+#: scheduler/ipp.c:318
+msgid "No attributes in request!"
+msgstr "Tidak ada atribut dalam permintaan!"
+
+#: scheduler/ipp.c:3725
+msgid "No authentication information provided!"
+msgstr "Tidak ada informasi otentikasi yang tersedia!"
+
+#: cups/snmp.c:1005
+msgid "No community name"
+msgstr "Tidak ada nama komunitas"
+
+#: scheduler/ipp.c:6490
+msgid "No default printer"
+msgstr "Tidak ada pencetak utama"
+
+#: cgi-bin/ipp-var.c:432 scheduler/ipp.c:7666
+msgid "No destinations added."
+msgstr "Tidak ada tujuan yang ditambah."
+
+#: cups/snmp.c:1035
+msgid "No error-index"
+msgstr "Tidak ada error-index"
+
+#: cups/snmp.c:1027
+msgid "No error-status"
+msgstr "Tidak ada error-status"
+
+#: scheduler/ipp.c:8582 scheduler/ipp.c:9817
+msgid "No file!?!"
+msgstr "Tidak ada berkas!?!"
+
+#: cups/util.c:924
+msgid "No modification time!"
+msgstr "Tidak ada waktu modifikasi!"
+
+#: cups/snmp.c:1052
+msgid "No name OID"
+msgstr "Tidak ada nama OID"
+
+#: cups/util.c:918
+msgid "No printer name!"
+msgstr "Tidak ada nama pencetak!"
+
+#: cups/util.c:1840
+msgid "No printer-uri found for class!"
+msgstr "Tidak ditemukan printer-uri untuk kelas!"
+
+#: cups/util.c:1855
+msgid "No printer-uri found!"
+msgstr "Tidak ditemukan printer-uri!"
+
+#: scheduler/ipp.c:6875
+msgid "No printer-uri in request!"
+msgstr "Tidak ada printer-uri dalam permintaan!"
+
+#: cups/snmp.c:1019
+msgid "No request-id"
+msgstr "Tidak ada request-id"
+
+#: scheduler/ipp.c:6103
+msgid "No subscription attributes in request!"
+msgstr "Tidak ada atribut subskripsi dalam permintaan!"
+
+#: scheduler/ipp.c:7984
+msgid "No subscriptions found."
+msgstr "Tidak ada subskripsi yang ditemukan."
+
+#: cups/snmp.c:1043
+msgid "No variable-bindings SEQUENCE"
+msgstr "Tidak ada variable-bindings SEQUENCE"
+
+#: cups/snmp.c:998
+msgid "No version number"
+msgstr "Tidak ada nomor versi"
+
+#: ppdc/sample.c:338
+msgid "Non-continuous (Mark sensing)"
+msgstr "Tak bersambungan (Penanda)"
+
+#: ppdc/sample.c:337
+msgid "Non-continuous (Web sensing)"
+msgstr "Tak bersambungan (Web)"
+
+#: ppdc/sample.c:210
+msgid "Normal"
+msgstr "Normal"
+
+#: cups/http-support.c:1221
+msgid "Not Found"
+msgstr "Tidak Ketemu"
+
+#: cups/http-support.c:1233
+msgid "Not Implemented"
+msgstr "Tidak Diimplementasikan"
+
+#: ppdc/sample.c:248
+msgid "Not Installed"
+msgstr "Tidak Terpasang"
+
+#: cups/http-support.c:1208
+msgid "Not Modified"
+msgstr "Tidak Diubah"
+
+#: cups/http-support.c:1236
+msgid "Not Supported"
+msgstr "Tidak Didukung"
+
+#: scheduler/ipp.c:1527
+msgid "Not allowed to print."
+msgstr "Tidak diperbolehkan mencetak."
+
+#: ppdc/sample.c:112
+msgid "Note"
+msgstr "Catatan"
+
+#: cups/http-support.c:1190 cups/ppd.c:335
+msgid "OK"
+msgstr "Oke"
+
+#: cups/localize.c:349
+msgid "OPC almost at end-of-life."
+msgstr "OPC nyaris di ujung hayat."
+
+#: cups/localize.c:351
+msgid "OPC at end-of-life!"
+msgstr "OPC sudah di ujung hayat!"
+
+#: ppdc/sample.c:243
+msgid "Off (1-Sided)"
+msgstr "Mati (1-Sisi)"
+
+#: ppdc/sample.c:332
+msgid "Oki"
+msgstr "Oki"
+
+#: cgi-bin/help.c:89 cgi-bin/help.c:130 cgi-bin/help.c:140 cgi-bin/help.c:171
+msgid "Online Help"
+msgstr "Bantuan Langsung"
+
+#: cups/adminutil.c:985
+#, c-format
+msgid "Open of %s failed: %s"
+msgstr "Gagal membuka %s: %s"
+
+#: cups/ppd.c:343
+msgid "OpenGroup without a CloseGroup first"
+msgstr "OpenGroup tanpa CloseGroup lebih dulu"
+
+#: cups/ppd.c:345
+msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
+msgstr "OpenUI/JCLOpenUI tanpa CloseUI/JCLCloseUI lebih dulu"
+
+#: cgi-bin/admin.c:3615
+msgid "Operation Policy"
+msgstr "Polis Operasi"
+
+#: cgi-bin/admin.c:3292 cgi-bin/admin.c:3352
+msgid "Options Installed"
+msgstr "Opsi yang Terpasang"
+
+#: filter/bannertops.c:674
+msgid "Options: "
+msgstr "Opsi: "
+
+#: cups/localize.c:317
+msgid "Out of toner!"
+msgstr "Kehabisan toner!"
+
+#: cups/ppd.c:753 cups/ppd.c:1291
+msgid "Output Mode"
+msgstr "Modus Keluaran"
+
+#: cups/localize.c:333
+msgid "Output bin almost full."
+msgstr "Baki keluaran hampir penuh."
+
+#: cups/localize.c:335
+msgid "Output bin full!"
+msgstr "Baki keluaran penuh!"
+
+#: systemv/lpstat.c:1191 systemv/lpstat.c:1195
+#, c-format
+msgid "Output for printer %s is sent to %s\n"
+msgstr "Keluaran untuk pencetak %s dikirim ke %s\n"
+
+#: systemv/lpstat.c:1185
+#, c-format
+msgid "Output for printer %s is sent to remote printer %s on %s\n"
+msgstr "Keluaran untuk pencetak %s dikirim ke pencetak jarak jauh %s pada %s\n"
+
+#: systemv/lpstat.c:1209 systemv/lpstat.c:1213
+#, c-format
+msgid "Output for printer %s/%s is sent to %s\n"
+msgstr "Keluaran untuk pencetak %s/%s dikirim ke %s\n"
+
+#: systemv/lpstat.c:1203
+#, c-format
+msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
+msgstr "Keluaran untuk pencetak %s/%s dikirim ke pencetak jarak jauh %s pada %s\n"
+
+#: cups/localize.c:331
+msgid "Output tray missing!"
+msgstr "Baki keluaran hilang!"
+
+#: systemv/cupstestdsc.c:403
+msgid "PASS\n"
+msgstr "LEWAT\n"
+
+#: ppdc/sample.c:232
+msgid "PCL Laser Printer"
+msgstr "Pencetak Laser PCL"
+
+#: ppdc/sample.c:77
+msgid "PRC1 Envelope"
+msgstr "PRC1 Amplop"
+
+#: ppdc/sample.c:86
+msgid "PRC10 Envelope"
+msgstr "PRC10 Amplop"
+
+#: ppdc/sample.c:114
+msgid "PRC16K"
+msgstr "PRC16K"
+
+#: ppdc/sample.c:78
+msgid "PRC2 Envelope"
+msgstr "PRC2 Amplop"
+
+#: ppdc/sample.c:79
+msgid "PRC3 Envelope"
+msgstr "PRC3 Amplop"
+
+#: ppdc/sample.c:115
+msgid "PRC32K"
+msgstr "PRC32K"
+
+#: ppdc/sample.c:116
+msgid "PRC32K (Oversize)"
+msgstr "PRC32K (Besar)"
+
+#: ppdc/sample.c:80
+msgid "PRC4 Envelope"
+msgstr "PRC4 Amplop"
+
+#: ppdc/sample.c:81
+msgid "PRC5 Envelope"
+msgstr "PRC5 Amplop"
+
+#: ppdc/sample.c:82
+msgid "PRC6 Envelope"
+msgstr "PRC6 Amplop"
+
+#: ppdc/sample.c:83
+msgid "PRC7 Envelope"
+msgstr "PRC7 Amplop"
+
+#: ppdc/sample.c:84
+msgid "PRC8 Envelope"
+msgstr "PRC8 Amplop"
+
+#: ppdc/sample.c:85
+msgid "PRC9 Envelope"
+msgstr "PRC9 Amplop"
+
+#: cups/snmp.c:1015
+msgid "Packet does not contain a Get-Response-PDU"
+msgstr "Paket tidak mengandung Get-Response-PDU"
+
+#: cups/snmp.c:994
+msgid "Packet does not start with SEQUENCE"
+msgstr "Paket tidak dimulai dengan SEQUENCE"
+
+#: ppdc/sample.c:331
+msgid "ParamCustominCutInterval"
+msgstr "ParamCustominCutInterval"
+
+#: ppdc/sample.c:329
+msgid "ParamCustominTearInterval"
+msgstr "ParamCustominTearInterval"
+
+#: cups/auth.c:158
+#, c-format
+msgid "Password for %s on %s? "
+msgstr "Sandi untuk %s pada %s? "
+
+#: systemv/cupsaddsmb.c:256
+#, c-format
+msgid "Password for %s required to access %s via SAMBA: "
+msgstr "Sandi untuk %s diperlukan untuk mengakses %s via SAMBA: "
+
+#: cgi-bin/classes.c:152
+msgid "Pause Class"
+msgstr "Tahan Kelas"
+
+#: cgi-bin/printers.c:155
+msgid "Pause Printer"
+msgstr "Tahan Pencetak"
+
+#: ppdc/sample.c:419
+msgid "Peel-Off"
+msgstr ""
+
+#: ppdc/sample.c:76
+msgid "Personal Envelope"
+msgstr "Amplop Pribadi"
+
+#: ppdc/sample.c:123
+msgid "Photo"
+msgstr "Foto"
+
+#: ppdc/sample.c:124
+msgid "Photo Labels"
+msgstr "Label Foto"
+
+#: ppdc/sample.c:257
+msgid "Plain Paper"
+msgstr "Kertas Biasa"
+
+#: cgi-bin/admin.c:3310 cgi-bin/admin.c:3564
+msgid "Policies"
+msgstr "Kebijakan"
+
+#: cgi-bin/admin.c:3317 cgi-bin/admin.c:3633 cgi-bin/admin.c:3646
+msgid "Port Monitor"
+msgstr "Port Monitor"
+
+#: ppdc/sample.c:250
+msgid "PostScript Printer"
+msgstr "Pencetak PostScript"
+
+#: ppdc/sample.c:113
+msgid "Postcard"
+msgstr "Kartu Pos"
+
+#: ppdc/sample.c:266
+msgid "Print Density"
+msgstr "Densitas Cetak"
+
+#: cups/notify.c:82
+msgid "Print Job:"
+msgstr "Tugas Cetak:"
+
+#: ppdc/sample.c:311
+msgid "Print Mode"
+msgstr "Modus Cetak"
+
+#: ppdc/sample.c:354
+msgid "Print Rate"
+msgstr ""
+
+#: cgi-bin/printers.c:164
+msgid "Print Self-Test Page"
+msgstr "Cetak Halaman Uji-Mandiri"
+
+#: ppdc/sample.c:298
+msgid "Print Speed"
+msgstr "Kecepatan Cetak"
+
+#: cgi-bin/ipp-var.c:787
+msgid "Print Test Page"
+msgstr "Cetak Halaman Uji"
+
+#: ppdc/sample.c:327
+msgid "Print and Cut"
+msgstr "Cetak dan Potong"
+
+#: ppdc/sample.c:315
+msgid "Print and Tear"
+msgstr ""
+
+#: filter/bannertops.c:648
+msgid "Printed For: "
+msgstr "Dicetak Untuk: "
+
+#: filter/bannertops.c:656
+msgid "Printed From: "
+msgstr "Dicetak Dari: "
+
+#: filter/bannertops.c:876
+msgid "Printed On: "
+msgstr "Dicetak Pada: "
+
+#: cgi-bin/ipp-var.c:1042
+msgid "Printer Added"
+msgstr "Pencetak Ditambah"
+
+#: ppdc/sample.c:235
+msgid "Printer Default"
+msgstr "Pencetak Utama"
+
+#: cgi-bin/ipp-var.c:1046
+msgid "Printer Deleted"
+msgstr "Pencetak Dihapus"
+
+#: cgi-bin/ipp-var.c:1044
+msgid "Printer Modified"
+msgstr "Pencetak Diubah"
+
+#: filter/bannertops.c:614
+msgid "Printer Name: "
+msgstr "Nama Pencetak: "
+
+#: cgi-bin/ipp-var.c:1040
+msgid "Printer Paused"
+msgstr "Pencetak Ditahan"
+
+#: ppdc/sample.c:265
+msgid "Printer Settings"
+msgstr "Pengaturan Pencetak"
+
+#: cups/localize.c:313
+msgid "Printer offline."
+msgstr "Pencetak tak terhubung."
+
+#: cups/notify.c:126
+msgid "Printer:"
+msgstr "Pencetak:"
+
+#: cgi-bin/printers.c:189 cgi-bin/printers.c:317
+msgid "Printers"
+msgstr "Pencetak"
+
+#: cgi-bin/classes.c:158 cgi-bin/printers.c:161
+msgid "Purge Jobs"
+msgstr "Membersihkan Tugas"
+
+#: ppdc/sample.c:117
+msgid "Quarto"
+msgstr "Kuarto"
+
+#: scheduler/ipp.c:1522
+msgid "Quota limit reached."
+msgstr "Batas kuota telah dicapai."
+
+#: berkeley/lpq.c:507
+msgid "Rank    Owner   Job     File(s)                         Total Size\n"
+msgstr "Urut    Tuan    Tgs     Berkas                          Ukur Total\n"
+
+#: berkeley/lpq.c:503
+msgid "Rank   Owner      Pri  Job        Files                       Total Size\n"
+msgstr "Urut   Tuan       Pri  Tugas      Berkas                      Ukuran Total\n"
+
+#: cgi-bin/classes.c:156 cgi-bin/printers.c:159
+msgid "Reject Jobs"
+msgstr "Tolak Tugas"
+
+#: ppdc/sample.c:399
+msgid "Reprint After Error"
+msgstr "Cetak Ulang Usai Kesalahan"
+
+#: cups/http-support.c:1224
+msgid "Request Entity Too Large"
+msgstr "Entitas Pesanan Terlalu Besar"
+
+#: cups/ppd.c:755 cups/ppd.c:1293 ppdc/sample.c:203
+msgid "Resolution"
+msgstr "Resolusi"
+
+#: cgi-bin/classes.c:150
+msgid "Resume Class"
+msgstr ""
+
+#: cgi-bin/printers.c:152
+msgid "Resume Printer"
+msgstr ""
+
+#: ppdc/sample.c:128
+msgid "Return Address"
+msgstr "Alamat Pengembalian"
+
+#: ppdc/sample.c:137
+msgid "Return Address - 3/4 x 2\""
+msgstr "Alamat Pengembalian - 3/4 x 2\""
+
+#: ppdc/sample.c:420
+msgid "Rewind"
+msgstr "Ulang"
+
+#: cups/adminutil.c:2167
+#, c-format
+msgid "Running command: %s %s -N -A %s -c '%s'\n"
+msgstr "Menjalankan perintah: %s %s -N -A %s -c '%s'\n"
+
+#: backend/scsi-irix.c:70 backend/scsi-linux.c:83
+msgid "SCSI Printer"
+msgstr "Pencetak SCSI"
+
+#: cups/snmp.c:996
+msgid "SEQUENCE uses indefinite length"
+msgstr "SEQUENCE memiliki panjang tak terdefinisi"
+
+#: cups/http-support.c:1205
+msgid "See Other"
+msgstr "Lihat Lainnya"
+
+#: backend/serial.c:784 backend/serial.c:943 backend/serial.c:1065
+#: backend/serial.c:1159
+#, c-format
+msgid "Serial Port #%d"
+msgstr "Port Serial #%d"
+
+#: cgi-bin/ipp-var.c:1056
+msgid "Server Restarted"
+msgstr "Server Dijalankan Ulang"
+
+#: cgi-bin/ipp-var.c:1062
+msgid "Server Security Auditing"
+msgstr "Audit Sekuritas Server"
+
+#: cgi-bin/ipp-var.c:1058
+msgid "Server Started"
+msgstr "Server Dijalankan"
+
+#: cgi-bin/ipp-var.c:1060
+msgid "Server Stopped"
+msgstr "Server Dihentikan"
+
+#: cups/http-support.c:1242
+msgid "Service Unavailable"
+msgstr "Layanan Tak Tersedia"
+
+#: cgi-bin/admin.c:2802 cgi-bin/admin.c:2848 cgi-bin/admin.c:3005
+#: cgi-bin/admin.c:3024
+msgid "Set Allowed Users"
+msgstr "Atur Pengguna yang Boleh"
+
+#: cgi-bin/admin.c:3051
+msgid "Set As Server Default"
+msgstr "Atur Sebagai Baku Server"
+
+#: cgi-bin/admin.c:3151
+msgid "Set Class Options"
+msgstr "Atur Opsi Kelas"
+
+#: cgi-bin/admin.c:3151 cgi-bin/admin.c:3320 cgi-bin/admin.c:3675
+msgid "Set Printer Options"
+msgstr "Atur Opsi Pencetak"
+
+#: cgi-bin/admin.c:3845 cgi-bin/admin.c:3889 cgi-bin/admin.c:3907
+msgid "Set Publishing"
+msgstr "Atur Penerbitan"
+
+#: ppdc/sample.c:129
+msgid "Shipping Address"
+msgstr "Alamat Pengiriman"
+
+#: ppdc/sample.c:138
+msgid "Shipping Address - 2 5/16 x 4\""
+msgstr "Alamat Pengiriman - 2 5/16 x 4\""
+
+#: ppdc/sample.c:245
+msgid "Short-Edge (Landscape)"
+msgstr "Sisi-Pendek (Mendatar)"
+
+#: ppdc/sample.c:259
+msgid "Special Paper"
+msgstr "Kertas Khusus"
+
+#: ppdc/sample.c:312
+msgid "Standard"
+msgstr "Standar"
+
+#: cgi-bin/admin.c:3538
+msgid "Starting Banner"
+msgstr "Menjalankan Pataka"
+
+#: ppdc/sample.c:118
+msgid "Statement"
+msgstr "Pernyataan"
+
+#: ppdc/sample.c:223
+msgid "Stylus Color Series"
+msgstr "Seri Stylus Color"
+
+#: ppdc/sample.c:229
+msgid "Stylus Photo Series"
+msgstr "Seri Stylus Photo"
+
+#: ppdc/sample.c:119
+msgid "Super A"
+msgstr "Super A"
+
+#: ppdc/sample.c:120
+msgid "Super B"
+msgstr "Super B"
+
+#: ppdc/sample.c:125
+msgid "Super B/A3"
+msgstr "Super B/A3"
+
+#: cups/http-support.c:1187
+msgid "Switching Protocols"
+msgstr "Berpindah Protokol"
+
+#: ppdc/sample.c:121
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#: ppdc/sample.c:122
+msgid "Tabloid (Oversize)"
+msgstr "Tabloid (Besar)"
+
+#: ppdc/sample.c:313
+msgid "Tear"
+msgstr ""
+
+#: ppdc/sample.c:418
+msgid "Tear-Off"
+msgstr ""
+
+#: ppdc/sample.c:359
+msgid "Tear-Off Adjust Position"
+msgstr ""
+
+#: scheduler/ipp.c:7337
+#, c-format
+msgid "The PPD file \"%s\" could not be found."
+msgstr "Berkas PPD \"%s\" tak bisa ditemukan."
+
+#: scheduler/ipp.c:7324
+#, c-format
+msgid "The PPD file \"%s\" could not be opened: %s"
+msgstr "Berkas PPD \"%s\" tak bisa dibuka: %s"
+
+#: cgi-bin/admin.c:644
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Nama kelas paling banyak 127 karakter cetak dan tidak mengandung spasi, "
+"garis miring (/), atau pun tanda pagar (#)."
+
+#: scheduler/ipp.c:2177
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "Atribut notify-lease-duration tak bisa digunakan bersama subskripsi tugas."
+
+#: scheduler/ipp.c:2160 scheduler/ipp.c:6228
+#, c-format
+msgid "The notify-user-data value is too large (%d > 63 octets)!"
+msgstr "Nilai notify-user-data terlalu besar (%d > 63 oktet)!"
+
+#: cgi-bin/admin.c:827
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Nama pencetak paling banyak 127 karakter cetak dan tidak mengandung spasi, "
+"garis miring (/), atau tanda pagar (#)."
+
+#: scheduler/ipp.c:1357
+msgid "The printer or class is not shared!"
+msgstr "Pencetak atau kelas tidak dikongsikan!"
+
+#: scheduler/ipp.c:884 scheduler/ipp.c:1190 scheduler/ipp.c:3856
+#: scheduler/ipp.c:3964 scheduler/ipp.c:5759 scheduler/ipp.c:6062
+#: scheduler/ipp.c:6375 scheduler/ipp.c:6912 scheduler/ipp.c:7542
+#: scheduler/ipp.c:7598 scheduler/ipp.c:7911 scheduler/ipp.c:8153
+#: scheduler/ipp.c:8243 scheduler/ipp.c:8276 scheduler/ipp.c:8597
+#: scheduler/ipp.c:8988 scheduler/ipp.c:9068 scheduler/ipp.c:10209
+#: scheduler/ipp.c:10665 scheduler/ipp.c:10994 scheduler/ipp.c:11061
+#: scheduler/ipp.c:11344
+msgid "The printer or class was not found."
+msgstr "Pencetak atau kelas tidak ditemukan."
+
+#: scheduler/ipp.c:990 scheduler/ipp.c:2367
+#, c-format
+msgid "The printer-uri \"%s\" contains invalid characters."
+msgstr "Terdapat karakter tidak sah pada printer-uri \"%s\"."
+
+#: scheduler/ipp.c:3801
+msgid "The printer-uri attribute is required!"
+msgstr "Atribut printer-uri diperlukan!"
+
+#: scheduler/ipp.c:974
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"Bentuk printer-uri seharusnya menuruti format \"ipp://HOSTNAME/classes/"
+"CLASSNAME\"."
+
+#: scheduler/ipp.c:2351
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"Bentuk printer-uri seharusnya menuruti format \"ipp://HOSTNAME/printers/"
+"PRINTERNAME\"."
+
+#: cgi-bin/admin.c:385
+msgid ""
+"The subscription name may not contain spaces, slashes (/), question marks "
+"(?), or the pound sign (#)."
+msgstr ""
+"Nama subskripsi tidak bisa mengandung spasi, garis miring (/), tanda tanya "
+"(?), atau tanda pagar (#)."
+
+#: scheduler/ipp.c:6305
+msgid "There are too many subscriptions."
+msgstr "Terlalu banyak subskripsi."
+
+#: ppdc/sample.c:406
+msgid "Thermal Transfer Media"
+msgstr ""
+
+#: filter/bannertops.c:640
+msgid "Title: "
+msgstr "Judul: "
+
+#: cups/localize.c:315
+msgid "Toner low."
+msgstr "Toner lemah."
+
+#: scheduler/ipp.c:1516
+msgid "Too many active jobs."
+msgstr "Terlalu banyak tugas yang aktif."
+
+#: scheduler/ipp.c:1454
+#, c-format
+msgid "Too many job-sheets values (%d > 2)!"
+msgstr "Terlalu banyak nilai job-sheets (%d > 2)!"
+
+#: scheduler/ipp.c:2672
+#, c-format
+msgid "Too many printer-state-reasons values (%d > %d)!"
+msgstr "Terlalu banyak nilai printer-state-reasons (%d > %d)!"
+
+#: ppdc/sample.c:260
+msgid "Transparency"
+msgstr "Transparansi"
+
+#: ppdc/sample.c:255
+msgid "Tray"
+msgstr "Baki"
+
+#: ppdc/sample.c:236
+msgid "Tray 1"
+msgstr "Baki 1"
+
+#: ppdc/sample.c:237
+msgid "Tray 2"
+msgstr "Baki 2"
+
+#: ppdc/sample.c:238
+msgid "Tray 3"
+msgstr "Baki 3"
+
+#: ppdc/sample.c:239
+msgid "Tray 4"
+msgstr "Baki 4"
+
+#: cups/http-support.c:1227
+msgid "URI Too Long"
+msgstr "URI Terlalu Panjang"
+
+#: ppdc/sample.c:88
+msgid "US Executive"
+msgstr "Eksekutif AS"
+
+#: ppdc/sample.c:91
+msgid "US Fanfold"
+msgstr "Fanfold AS"
+
+#: ppdc/sample.c:105
+msgid "US Ledger"
+msgstr "Ledger AS"
+
+#: ppdc/sample.c:106
+msgid "US Legal"
+msgstr "Legal AS"
+
+#: ppdc/sample.c:107
+msgid "US Legal (Oversize)"
+msgstr "Legal AS (Besar)"
+
+#: ppdc/sample.c:108
+msgid "US Letter"
+msgstr "Kuarto AS"
+
+#: ppdc/sample.c:109
+msgid "US Letter (Oversize)"
+msgstr "Kuarto AS (Besar)"
+
+#: ppdc/sample.c:110
+msgid "US Letter (Small)"
+msgstr "Kuarto AS (Kecil)"
+
+#: backend/serial.c:797
+#, c-format
+msgid "USB Serial Port #%d"
+msgstr "Port Serial USB #%d"
+
+#: cgi-bin/admin.c:1933 cgi-bin/admin.c:1946 cgi-bin/admin.c:1970
+msgid "Unable to access cupsd.conf file:"
+msgstr "Tidak bisa mengakses berkas cupsd.conf:"
+
+#: cgi-bin/admin.c:437
+msgid "Unable to add RSS subscription:"
+msgstr "Tidak bisa menambah subskripsi RSS:"
+
+#: cgi-bin/admin.c:710
+msgid "Unable to add class:"
+msgstr "Tidak bisa menambah kelas:"
+
+#: scheduler/ipp.c:1560
+#, c-format
+msgid "Unable to add job for destination \"%s\"!"
+msgstr "Tidak bisa menambah tugas untuk tujuan \"%s\"!"
+
+#: cgi-bin/admin.c:959 cgi-bin/admin.c:1320
+msgid "Unable to add printer:"
+msgstr "Tidak bisa menambah pencetak:"
+
+#: scheduler/ipp.c:1302
+msgid "Unable to allocate memory for file types!"
+msgstr "Tidak bisa mengalokasikan memori untuk jenis berkas!"
+
+#: cgi-bin/admin.c:1426
+msgid "Unable to cancel RSS subscription:"
+msgstr "Tidak bisa membatalkan subskripsi RSS:"
+
+#: cgi-bin/admin.c:3890
+msgid "Unable to change printer-is-shared attribute:"
+msgstr "Tidak bisa mengubah atribut printer-is-shared:"
+
+#: cgi-bin/admin.c:3006
+msgid "Unable to change printer:"
+msgstr "Tidak bisa mengubah pencetak:"
+
+#: cgi-bin/admin.c:1610 cgi-bin/admin.c:1774
+msgid "Unable to change server settings:"
+msgstr "Tidak bisa mengubah pengaturan server:"
+
+#: cups/adminutil.c:941 cups/util.c:1652
+msgid "Unable to connect to host."
+msgstr "Tidak bisa terhubung ke host."
+
+#: cups/adminutil.c:737
+#, c-format
+msgid "Unable to copy 64-bit CUPS printer driver files (%d)!"
+msgstr "Tidak bisa menyalin berkas penggerak pencetak CUPS 64-bit (%d)!"
+
+#: cups/adminutil.c:702
+#, c-format
+msgid "Unable to copy 64-bit Windows printer driver files (%d)!"
+msgstr "Tidak bisa menyalin berkas penggerak pencetak Windows 64-bit (%d)!"
+
+#: cups/adminutil.c:533
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!"
+msgstr "Tidak bisa menyalin berkas penggerak pencetak CUPS (%d)!"
+
+#: scheduler/ipp.c:2788
+#, c-format
+msgid "Unable to copy PPD file - %s!"
+msgstr "Tidak bisa menyalin berkas PPD - %s!"
+
+#: scheduler/ipp.c:2854
+msgid "Unable to copy PPD file!"
+msgstr "Tidak bisa menyalin berkas PPD!"
+
+#: cups/adminutil.c:498
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!"
+msgstr "Tidak bisa menyalin berkas penggerak pencetak Windows 2000 (%d)!"
+
+#: cups/adminutil.c:621
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!"
+msgstr "Tidak bisa menyalin berkas penggerak pencetak Windows 9x (%d)!"
+
+#: scheduler/ipp.c:2765
+#, c-format
+msgid "Unable to copy interface script - %s!"
+msgstr "Tidak bisa menyalin skrip antarmuka - %s!"
+
+#: cups/util.c:607 cups/util.c:1711
+msgid "Unable to create printer-uri!"
+msgstr "Tidak bisa membuat printer-uri!"
+
+#: cgi-bin/admin.c:1824 cgi-bin/admin.c:1836
+msgid "Unable to create temporary file:"
+msgstr "Tidak bisa membuat berkas temporer:"
+
+#: cgi-bin/admin.c:2127
+msgid "Unable to delete class:"
+msgstr "Tidak bisa menghapus kelas:"
+
+#: cgi-bin/admin.c:2212
+msgid "Unable to delete printer:"
+msgstr "Tidak bisa menghapus pencetak:"
+
+#: cgi-bin/classes.c:245 cgi-bin/printers.c:254
+msgid "Unable to do maintenance command:"
+msgstr ""
+
+#: cgi-bin/admin.c:1948
+msgid "Unable to edit cupsd.conf files larger than 1MB!"
+msgstr "Tidak bisa menyunting berkas cupsd.conf lebih dari 1MB!"
+
+#: cgi-bin/ipp-var.c:361
+msgid "Unable to find destination for job!"
+msgstr "Tidak bisa menemukan tujuan untuk tugas!"
+
+#: cups/http-support.c:1509
+msgid "Unable to find printer!\n"
+msgstr "Tidak bisa menemukan pencetak!\n"
+
+#: cgi-bin/classes.c:435
+msgid "Unable to get class list:"
+msgstr "Tidak bisa memperoleh daftar kelas:"
+
+#: cgi-bin/classes.c:534
+msgid "Unable to get class status:"
+msgstr "Tidak bisa memperoleh status kelas:"
+
+#: cgi-bin/admin.c:1221
+msgid "Unable to get list of printer drivers:"
+msgstr "Tidak bisa memperoleh daftar penggerak pencetak:"
+
+#: cgi-bin/admin.c:2856
+msgid "Unable to get printer attributes:"
+msgstr "Tidak bisa memperoleh atribut pencetak:"
+
+#: cgi-bin/printers.c:452
+msgid "Unable to get printer list:"
+msgstr "Tidak bisa memperoleh daftar pencetak:"
+
+#: cgi-bin/printers.c:554
+msgid "Unable to get printer status:"
+msgstr "Tidak bisa memperoleh status pencetak:"
+
+#: cups/adminutil.c:576 cups/adminutil.c:780
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!"
+msgstr "Tidak bisa memasang berkas penggerak pencetak Windows 2000 (%d)!"
+
+#: cups/adminutil.c:650
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!"
+msgstr "Tidak bisa memasang berkas penggerak pencetak Windows 9x (%d)!"
+
+#: cgi-bin/admin.c:709
+msgid "Unable to modify class:"
+msgstr "Tidak bisa mengubah kelas:"
+
+#: cgi-bin/admin.c:958 cgi-bin/admin.c:1319
+msgid "Unable to modify printer:"
+msgstr "Tidak bisa mengubah pencetak"
+
+#: cgi-bin/ipp-var.c:428 cgi-bin/ipp-var.c:517
+msgid "Unable to move job"
+msgstr "Tidak bisa memindahkan tugas"
+
+#: cgi-bin/ipp-var.c:430 cgi-bin/ipp-var.c:519
+msgid "Unable to move jobs"
+msgstr "Tidak bisa memindahkan tugas"
+
+#: cups/ppd.c:336
+msgid "Unable to open PPD file"
+msgstr "Tidak bisa membuka berkas PPD"
+
+#: cgi-bin/admin.c:3202
+msgid "Unable to open PPD file:"
+msgstr "Tidak bisa membuka berkas PPD:"
+
+#: cgi-bin/admin.c:2582
+msgid "Unable to open cupsd.conf file:"
+msgstr "Tidak bisa membuka berkas cupsd.conf:"
+
+#: scheduler/ipp.c:6710
+#, c-format
+msgid "Unable to open document %d in job %d!"
+msgstr "Tidak bisa membuka dokumen %d pada tugas %d!"
+
+#: cgi-bin/ipp-var.c:790
+msgid "Unable to print test page:"
+msgstr "Tidak bisa mencetak halaman uji:"
+
+#: cups/adminutil.c:2203
+#, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "Tidak bisa menjalankan \"%s\": %s\n"
+
+#: cgi-bin/ipp-var.c:594 cgi-bin/ipp-var.c:614
+msgid "Unable to send command to printer driver!"
+msgstr ""
+
+#: cups/adminutil.c:832
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Tidak bisa mengeset penggerak pencetak Windows (%d)!"
+
+#: cgi-bin/admin.c:3791
+msgid "Unable to set options:"
+msgstr "Tidak bisa mengeset opsi:"
+
+#: cgi-bin/admin.c:3093
+msgid "Unable to set server default:"
+msgstr ""
+
+#: cgi-bin/admin.c:1886
+msgid "Unable to upload cupsd.conf file:"
+msgstr "Tidak bisa mengunggah berkas cupsd.conf:"
+
+#: backend/usb-darwin.c:1953 backend/usb-darwin.c:1975
+msgid "Unable to use legacy USB class driver!\n"
+msgstr ""
+
+#: cups/http-support.c:1215
+msgid "Unauthorized"
+msgstr "Terlarang"
+
+#: cgi-bin/admin.c:3491
+msgid "Units"
+msgstr "Unit"
+
+#: cups/http-support.c:1249 cups/ppd.c:360
+msgid "Unknown"
+msgstr "Tak Dikenal"
+
+#: scheduler/ipp.c:10867
+#, c-format
+msgid "Unknown printer-error-policy \"%s\"."
+msgstr "printer-error-policy \"%s\" tak dikenal."
+
+#: scheduler/ipp.c:10850
+#, c-format
+msgid "Unknown printer-op-policy \"%s\"."
+msgstr "printer-op-policy \"%s\" tak dikenal."
+
+#: scheduler/ipp.c:418
+#, c-format
+msgid "Unsupported character set \"%s\"!"
+msgstr "Set karakter \"%s\" tak didukung!"
+
+#: scheduler/ipp.c:8563 scheduler/ipp.c:9798
+#, c-format
+msgid "Unsupported compression \"%s\"!"
+msgstr "Kompresi \"%s\" tak didukung!"
+
+#: scheduler/ipp.c:11297
+#, c-format
+msgid "Unsupported compression attribute %s!"
+msgstr "Atribut kompresi %s tak didukung!"
+
+#: scheduler/ipp.c:11325
+#, c-format
+msgid "Unsupported format \"%s\"!"
+msgstr "Format \"%s\" tak didukung!"
+
+#: scheduler/ipp.c:1420 scheduler/ipp.c:9932
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr "Format '%s' tak didukung!"
+
+#: scheduler/ipp.c:8697 scheduler/ipp.c:9915
+#, c-format
+msgid "Unsupported format '%s/%s'!"
+msgstr "Format '%s/%s' tak didukung!"
+
+#: cups/snmp.c:1113
+msgid "Unsupported value type"
+msgstr "Jenis nilai tak didukung"
+
+#: cups/http-support.c:1230
+msgid "Upgrade Required"
+msgstr "Diperlukan Naik-Tingkat"
+
+#: systemv/lpadmin.c:805
+msgid ""
+"Usage:\n"
+"\n"
+"    lpadmin [-h server] -d destination\n"
+"    lpadmin [-h server] -x destination\n"
+"    lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n"
+"                       [-r remove-class] [-v device] [-D description]\n"
+"                       [-P ppd-file] [-o name=value]\n"
+"                       [-u allow:user,user] [-u deny:user,user]\n"
+"\n"
+msgstr ""
+"Penggunaan:\n"
+"\n"
+"    lpadmin [-h server] -d tujuan\n"
+"    lpadmin [-h server] -x tujuan\n"
+"    lpadmin [-h server] -p pencetak [-c tambah-kelas] [-i antarmuka] [-m "
+"model]\n"
+"                       [-r buang-kelas] [-v perangkat] [-D deskripsi]\n"
+"                       [-P berkas-ppd] [-o nama=nilai]\n"
+"                       [-u allow:pengguna,pengguna] [-u deny:pengguna,"
+"pengguna]\n"
+"\n"
+
+#: filter/pdftops.c:103
+#, c-format
+msgid "Usage: %s job user title copies options [filename]\n"
+msgstr "Penggunaan: %s tugas pengguna judul salinan opsi [berkas]\n"
+
+#: backend/ipp.c:212 backend/lpd.c:184 backend/pap.c:228
+#: backend/parallel.c:127 backend/scsi.c:157 backend/serial.c:165
+#: backend/socket.c:132 backend/usb.c:183 filter/bannertops.c:118
+#: filter/hpgl-main.c:148 filter/imagetops.c:115 filter/imagetoraster.c:207
+#: filter/pstops.c:255 filter/rastertoepson.c:988 filter/rastertohp.c:713
+#: filter/rastertolabel.c:1135 filter/textcommon.c:518
+#, c-format
+msgid "Usage: %s job-id user title copies options [file]\n"
+msgstr "Penggunaan: %s id-tugas pengguna judul rangkap opsi [berkas]\n"
+
+#: filter/gziptoany.c:53
+#, c-format
+msgid "Usage: %s job-id user title copies options file\n"
+msgstr "Penggunaan: %s id-tugas pengguna judul rangkap opsi berkas\n"
+
+#: scheduler/cupsfilter.c:1329
+msgid ""
+"Usage: convert [ options ]\n"
+"\n"
+"Options:\n"
+"\n"
+"  -e                   Use every filter from the PPD file\n"
+"  -f filename          Set file to be converted (otherwise stdin)\n"
+"  -o filename          Set file to be generated (otherwise stdout)\n"
+"  -i mime/type         Set input MIME type (otherwise auto-typed)\n"
+"  -j mime/type         Set output MIME type (otherwise application/pdf)\n"
+"  -P filename.ppd      Set PPD file\n"
+"  -a 'name=value ...'  Set option(s)\n"
+"  -U username          Set username for job\n"
+"  -J title             Set title\n"
+"  -c copies            Set number of copies\n"
+"  -u                   Remove the PPD file when finished\n"
+"  -D                   Remove the input file when finished\n"
+msgstr ""
+
+#: systemv/cupsaddsmb.c:286
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+"       cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+"  -E               Encrypt the connection to the server\n"
+"  -H samba-server  Use the named SAMBA server\n"
+"  -U samba-user    Authenticate using the named SAMBA user\n"
+"  -a               Export all printers\n"
+"  -h cups-server   Use the named CUPS server\n"
+"  -v               Be verbose (show commands)\n"
+msgstr ""
+"Penggunaan: cupsaddsmb [opsi] pencetak1 ... pencetakN\n"
+"            cupsaddsmb [opsi] -a\n"
+"\n"
+"Opsi:\n"
+"  -E               Mengenkripsi koneksi ke server\n"
+"  -H samba-server  Menggunakan server SAMBA yang diberikan\n"
+"  -U samba-user    Otentikasi menggunakan nama pengguna SAMBA yang "
+"diberikan\n"
+"  -a               Mengekspor semua pencetak\n"
+"  -h cups-server   Menggunakan server CUPS yang ditentukan\n"
+"  -v               Menjadi riuh (menampilkan perintah)\n"
+
+#: systemv/cupsctl.c:202
+msgid ""
+"Usage: cupsctl [options] [param=value ... paramN=valueN]\n"
+"\n"
+"Options:\n"
+"\n"
+"    -E                      Enable encryption\n"
+"    -U username             Specify username\n"
+"    -h server[:port]        Specify server address\n"
+"\n"
+"    --[no-]debug-logging    Turn debug logging on/off\n"
+"    --[no-]remote-admin     Turn remote administration on/off\n"
+"    --[no-]remote-any       Allow/prevent access from the Internet\n"
+"    --[no-]remote-printers  Show/hide remote printers\n"
+"    --[no-]share-printers   Turn printer sharing on/off\n"
+"    --[no-]user-cancel-any  Allow/prevent users to cancel any job\n"
+msgstr ""
+"Penggunaan: cupsctl [opsi] [param=nilai ... paramN=nilaiN]\n"
+"\n"
+"Opsi:\n"
+"\n"
+"    -E                      Mengaktifkan enkripsi\n"
+"    -U namapengguna         Menentukan nama pengguna\n"
+"    -h server[:portal       Menentukan alamat server\n"
+"\n"
+"    --[no-]debug-logging    Mengaktifkan/tidak pencatat debug\n"
+"    --[no-]remote-admin     Mengaktifkan/tidak administrasi jarak jauh\n"
+"    --[no-]remote-any       Biarkan/cegah akses dari Internet\n"
+"    --[no-]remote-printers  Tampilkan/sembunyikan pencetak jarak jauh\n"
+"    --[no-]share-printers   Mengaktifkan/tidak pencetak yang dikongsi\n"
+"    --[no-]user-cancel-any  Biarkan/cegah pengguna biasa membatalkan tugas\n"
+
+#: scheduler/main.c:2128
+msgid ""
+"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c config-file      Load alternate configuration file\n"
+"-f                  Run in the foreground\n"
+"-F                  Run in the foreground but detach\n"
+"-h                  Show this usage message\n"
+"-l                  Run cupsd from launchd(8)\n"
+msgstr ""
+"Penggunaan: cupsd [-c berkas-konfigurasi] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c berkas-konfigurasi  Memuat berkas konfigurasi alternatif\n"
+"-f                     Berjalan pada latar depan\n"
+"-F                     Berjalan pada latar depan tapi terpisah\n"
+"-h                     Tampilkan pesan ini\n"
+"-l                     Menjalankan cupsd dari launchd(8)\n"
+
+#: scheduler/cupsfilter.c:1316
+msgid ""
+"Usage: cupsfilter -m mime/type [ options ] filename\n"
+"\n"
+"Options:\n"
+"\n"
+"  -c cupsd.conf    Set cupsd.conf file to use\n"
+"  -e               Use every filter from the PPD file\n"
+"  -j job-id[,N]    Filter file N from the specified job (default is file 1)\n"
+"  -n copies        Set number of copies\n"
+"  -o name=value    Set option(s)\n"
+"  -p filename.ppd  Set PPD file\n"
+"  -t title         Set title\n"
+msgstr ""
+"Penggunaan: cupsfilter -m mime/jenis [ opsi ] berkas\n"
+"\n"
+"Opsi:\n"
+"\n"
+"  -c cupsd.conf    Mengeset berkas cupsd.conf untuk digunakan\n"
+"  -e               Menggunakan tiap penyaring dari berkas PPD\n"
+"  -j job-id[,N]    Menyaring berkas N dari tugas yang diberikan (baku adalah berkas 1)\n"
+"  -n copies        Mengeset banyaknya salinan\n"
+"  -o name=value    Mengeset opsi\n"
+"  -p filename.ppd  Mengeset berkas PPD\n"
+"  -t title         Mengeset judul\n"
+
+#: systemv/cupstestdsc.c:430
+msgid ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+"       cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+"    -h       Show program usage\n"
+"\n"
+"    Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
+msgstr ""
+"Penggunaan: cupstestdsc [opsi] berkas.ps [... berkas.ps]\n"
+"            cupstestdsc [opsi] -\n"
+"\n"
+"Opsi:\n"
+"\n"
+"    -h       Menampilkan cara guna program\n"
+"\n"
+"    Catatan: program ini hanya memvalidasi komentar DSC, bukan PostScript "
+"itu sendiri.\n"
+
+#: systemv/cupstestppd.c:3483
+msgid ""
+"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"       program | cupstestppd [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+"    -R root-directory    Set alternate root\n"
+"    -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,"
+"translations}\n"
+"                         Issue warnings instead of errors\n"
+"    -q                   Run silently\n"
+"    -r                   Use 'relaxed' open mode\n"
+"    -v                   Be slightly verbose\n"
+"    -vv                  Be very verbose\n"
+msgstr ""
+"Penggunaan: cupstestppd [opsi] berkas1.ppd[.gz] [... berkasN.ppd[.gz]]\n"
+"       program | cupstestppd [opsi] -\n"
+"\n"
+"Opsi:\n"
+"\n"
+"    -R direktori-root    Mengeset root alternatif\n"
+"    -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,"
+"translations}\n"
+"                         Menampilkan peringatan ketimbang kesalahan\n"
+"    -q                   Berjalan senyap\n"
+"    -r                   Menggunakan modus 'relaxed' terbuka\n"
+"    -v                   Menjadi riuh\n"
+"    -vv                  Menjadi sangat riuh\n"
+
+#: systemv/lpmove.c:132
+msgid "Usage: lpmove job/src dest\n"
+msgstr "Penggunaan: lpmove tugas/sumber tujuan\n"
+
+#: systemv/lpoptions.c:540
+msgid ""
+"Usage: lpoptions [-h server] [-E] -d printer\n"
+"       lpoptions [-h server] [-E] [-p printer] -l\n"
+"       lpoptions [-h server] [-E] -p printer -o option[=value] ...\n"
+"       lpoptions [-h server] [-E] -x printer\n"
+msgstr ""
+"Penggunaan: lpoptions [-h server] [-E] -d pencetak\n"
+"            lpoptions [-h server] [-E] [-p pencetak] -l\n"
+"            lpoptions [-h server] [-E] -p pencetak -o opsi[=nilai] ...\n"
+"            lpoptions [-h server] [-E] -x pencetak\n"
+
+#: systemv/lppasswd.c:493
+msgid "Usage: lppasswd [-g groupname]\n"
+msgstr "Penggunaan: lppasswd [-g namakelompok]\n"
+
+#: systemv/lppasswd.c:496
+msgid ""
+"Usage: lppasswd [-g groupname] [username]\n"
+"       lppasswd [-g groupname] -a [username]\n"
+"       lppasswd [-g groupname] -x [username]\n"
+msgstr ""
+"Penggunaan: lppasswd [-g namakelompok] [namapengguna]\n"
+"            lppasswd [-g namakelompok] -a [namapengguna]\n"
+"            lppasswd [-g namakelompok] -x [namapengguna]\n"
+
+#: berkeley/lpq.c:662
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Penggunaan: lpq [-P tujuan] [-U namapengguna] [-h namahost[:portal]] [-l] "
+"[+interval]\n"
+
+#: ppdc/ppdc.cxx:408
+msgid ""
+"Usage: ppdc [options] filename.drv [ ... filenameN.drv ]\n"
+"Options:\n"
+"  -D name=value        Set named variable to value.\n"
+"  -I include-dir       Add include directory to search path.\n"
+"  -c catalog.po        Load the specified message catalog.\n"
+"  -d output-dir        Specify the output directory.\n"
+"  -l lang[,lang,...]   Specify the output language(s) (locale).\n"
+"  -m                   Use the ModelName value as the filename.\n"
+"  -t                   Test PPDs instead of generating them.\n"
+"  -v                   Be verbose (more v's for more verbosity).\n"
+"  -z                   Compress PPD files using GNU zip.\n"
+"  --cr                 End lines with CR (Mac OS 9).\n"
+"  --crlf               End lines with CR + LF (Windows).\n"
+"  --lf                 End lines with LF (UNIX/Linux/Mac OS X).\n"
+msgstr ""
+"Penggunaan: ppdc [opsi] berkas.drv [ ... berkasN.drv ]\n"
+"Opsi:\n"
+"  -D nama=nilai        Atur nilai variabel bernama.\n"
+"  -I dir-inklusi       Tambah direktori dalam jalur pencarian.\n"
+"  -c katalog.po        Memuat katalog pesan yang diinginkan.\n"
+"  -d dir-keluaran      Menentukan direktori keluaran.\n"
+"  -l bhsa[,bhsa,...]   Menentukan bahasa keluaran (lokal).\n"
+"  -m                   Menggunakan nilai ModelName sebagai nama berkas.\n"
+"  -t                   Menguji PPD ketimbang membuatnya.\n"
+"  -v                   Menjadi riuh (tambahkan v lagi untuk lebih riuh).\n"
+"  -z                   Kompres berkas PPD dengan GNU zip.\n"
+"  --cr                 Akhiri baris dengan CR (Mac OS 9).\n"
+"  --crlf               Akhiri baris dengan CR + LF (Windows).\n"
+"  --lf                 Akhiri baris dengan LF (UNIX/Linux/Mac OS X).\n"
+
+#: ppdc/ppdhtml.cxx:173
+msgid ""
+"Usage: ppdhtml [options] filename.drv >filename.html\n"
+"  -D name=value        Set named variable to value.\n"
+"Options:\n"
+"  -I include-dir       Add include directory to search path.\n"
+msgstr ""
+"Penggunaan: ppdhtml [opsi] berkas.drv >berkas.html\n"
+"  -D nama=nilai        Atur nilai variabel bernama.\n"
+"Opsi:\n"
+"  -I dir-inklusi       Tambah direktori dalam jalur pencarian.\n"
+
+#: ppdc/ppdi.cxx:129
+msgid ""
+"Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]\n"
+"Options:\n"
+"  -I include-dir\n"
+"  -o filename.drv\n"
+msgstr ""
+"Penggunaan: ppdi [opsi] berkas.ppd [ ... berkasN.ppd ]\n"
+"Opsi:\n"
+"  -I direktori\n"
+"  -o berkas.drv\n"
+
+#: ppdc/ppdmerge.cxx:370
+msgid ""
+"Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]\n"
+"Options:\n"
+"  -o filename.ppd[.gz]\n"
+msgstr ""
+"Penggunaan: ppdmerge [opsi] berkas.ppd [ ... berkasN.ppd ]\n"
+"Opsi:\n"
+"  -o berkas.ppd[.gz]\n"
+
+#: ppdc/ppdpo.cxx:254
+msgid ""
+"Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]\n"
+"Options:\n"
+"  -D name=value        Set named variable to value.\n"
+"  -I include-dir       Add include directory to search path.\n"
+"  -v                   Be verbose (more v's for more verbosity).\n"
+msgstr ""
+"Penggunaan: ppdpo [opsi] -o berkas.po berkas.drv [ ... berkasN.drv ]\n"
+"Opsi:\n"
+"  -D nama=nilai        Mengeset nilai variabel bernama.\n"
+"  -I dir-inklusi       Tambah direktori dalam jalur pencarian.\n"
+"  -v                   Menjadi riuh (tambahkan v lagi untuk lebih riuh).\n"
+
+#: backend/snmp.c:224
+msgid "Usage: snmp [host-or-ip-address]\n"
+msgstr "Penggunaan: snmp [host-atau-alamat-ip]\n"
+
+#: cups/snmp.c:1065
+msgid "Value uses indefinite length"
+msgstr "Value memiliki panjang tak terdefinisi"
+
+#: cups/snmp.c:1050
+msgid "VarBind uses indefinite length"
+msgstr "VarBind memiliki panjang tak terdefinisi"
+
+#: cups/snmp.c:1000
+msgid "Version uses indefinite length"
+msgstr "Version memiliki panjang tak terdefinisi"
+
+#: backend/pap.c:328
+#, c-format
+msgid "WARNING: Adding only the first %d printers found"
+msgstr "WARNING: Hanya menambah %d pencetak pertama yang ditemukan"
+
+#: backend/pap.c:1460 backend/usb-darwin.c:1816
+#, c-format
+msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
+msgstr "WARNING: Diharapkan boolean untuk opsi waiteof \"%s\"\n"
+
+#: backend/network.c:83 backend/pap.c:1293 backend/parallel.c:638
+#: backend/serial.c:1297 backend/usb-libusb.c:747 backend/usb-unix.c:583
+msgid "WARNING: Failed to read side-channel request!\n"
+msgstr "WARNING: Gagal membaca permintaan kanal sisi!\n"
+
+#: filter/pstops.c:2237
+#, c-format
+msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
+msgstr "WARNING: Opsi \"%s\" tidak akan disertakan via IncludeFeature!\n"
+
+#: backend/pap.c:503
+msgid "WARNING: Printer not responding\n"
+msgstr "WARNING: Pencetak tidak merespon!\n"
+
+#: backend/pap.c:831 backend/pap.c:854
+msgid "WARNING: Printer sent unexpected EOF\n"
+msgstr "WARNING: Pencetak mengirim EOF yang tak diharapkan\n"
+
+#: backend/lpd.c:618
+#, c-format
+msgid ""
+"WARNING: Remote host did not respond with command status byte after %d "
+"seconds!\n"
+msgstr ""
+"WARNING: Host jarak jauh tidak merespon pada bita status perintah usai %d "
+"detik!\n"
+
+#: backend/lpd.c:1042 backend/lpd.c:1189
+#, c-format
+msgid ""
+"WARNING: Remote host did not respond with control status byte after %d "
+"seconds!\n"
+msgstr ""
+"WARNING: Host jarak jauh tidak merespon pada bita kontrol status usai %d "
+"detik!\n"
+
+#: backend/lpd.c:1134
+#, c-format
+msgid ""
+"WARNING: Remote host did not respond with data status byte after %d "
+"seconds!\n"
+msgstr ""
+"WARNING: Host jarak jauh tidak merespon pada bita status data usai %d "
+"detik!\n"
+
+#: backend/scsi-irix.c:210 backend/scsi-linux.c:228
+#, c-format
+msgid "WARNING: SCSI command timed out (%d); retrying...\n"
+msgstr "WARNING: Perintah SCSI kehabisan waktu (%d); mencoba ulang...\n"
+
+#: filter/pstops.c:1096
+msgid ""
+"WARNING: This document does not conform to the Adobe Document Structuring "
+"Conventions and may not print correctly!\n"
+msgstr ""
+"WARNING: Dokumen ini tidak sesuai dengan Adobe Document Structuring "
+"Conventions dan mungkin tidak tercetak dengan benar!\n"
+
+#: backend/pap.c:492
+#, c-format
+msgid "WARNING: Unable to open \"%s:%s\": %s\n"
+msgstr "WARNING: Tidak bisa membuka \"%s:%s\": %s\n"
+
+#: backend/pap.c:637
+msgid "WARNING: Unable to send PAP status request"
+msgstr "WARNING: Tidak bisa mengirim permintaan status PAP"
+
+#: backend/pap.c:867
+#, c-format
+msgid "WARNING: Unexpected PAP packet of type %d\n"
+msgstr ""
+
+#: backend/pap.c:872
+#, c-format
+msgid "WARNING: Unknown PAP packet of type %d\n"
+msgstr "WARNING: Paket PAP berjenis %d tak dikenal\n"
+
+#: filter/pstops.c:2245
+#, c-format
+msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
+msgstr "WARNING: Pilihan \"%s\" tak dikenal untuk opsi \"%s\"!\n"
+
+#: filter/pstops.c:2230
+#, c-format
+msgid "WARNING: Unknown option \"%s\"!\n"
+msgstr "WARNING: Opsi \"%s\" tak dikenal!\n"
+
+#: backend/serial.c:380
+#, c-format
+msgid "WARNING: Unsupported baud rate %s!\n"
+msgstr ""
+
+#: backend/pap.c:1474
+#, c-format
+msgid "WARNING: number expected for status option \"%s\"\n"
+msgstr "WARNING: angka diharapkan untuk opsi status \"%s\"\n"
+
+#: backend/ipp.c:588 backend/ipp.c:723 backend/lpd.c:855 backend/socket.c:317
+#, c-format
+msgid ""
+"WARNING: recoverable: Network host '%s' is busy; will retry in %d "
+"seconds...\n"
+msgstr ""
+
+#: cups/adminutil.c:804
+msgid "Warning, no Windows 2000 printer drivers are installed!"
+msgstr "Peringatan, tak ada penggerak pencetak Windows 2000 yang terpasang!"
+
+#: cups/ppd.c:1875
+msgid "Yes"
+msgstr "Ya"
+
+#: scheduler/client.c:2402
+#, c-format
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+"Anda harus mengakses halaman ini melalui URL <A HREF=\"https://%s:%d%s"
+"\">https://%s:%d%s</A>."
+
+#: ppdc/sample.c:87
+msgid "You4 Envelope"
+msgstr "You4 Amplop"
+
+#: ppdc/sample.c:410
+msgid "ZPL Label Printer"
+msgstr "Pencetak Label ZPL"
+
+#: ppdc/sample.c:333
+msgid "Zebra"
+msgstr "Zebra"
+
+#: cups/notify.c:102
+msgid "aborted"
+msgstr "digagalkan"
+
+#: cups/notify.c:99
+msgid "canceled"
+msgstr "dibatalkan"
+
+#: cups/notify.c:105
+msgid "completed"
+msgstr "diselesaikan"
+
+#: scheduler/cupsfilter.c:342
+msgid "convert: Use the -f option to specify a file to convert.\n"
+msgstr "konversi: Gunakan opsi -f untuk menentukan berkas yang hendak dikonversi.\n"
+
+#: scheduler/ipp.c:6583
+msgid "cups-deviced failed to execute."
+msgstr "cups-deviced gagal dieksekusi."
+
+#: scheduler/ipp.c:7259 scheduler/ipp.c:7509
+msgid "cups-driverd failed to execute."
+msgstr "cups-driverd gagal dieksekusi."
+
+#: systemv/cupsaddsmb.c:236
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
+msgstr "cupsaddsmb: Tidak ada berkas PPD untuk pencetak \"%s\" - %s\n"
+
+#: systemv/cupsctl.c:153
+#, c-format
+msgid "cupsctl: Unable to connect to server: %s\n"
+msgstr "cupsctl: Tidak bisa menghubungi server: %s\n"
+
+#: systemv/cupsctl.c:196
+#, c-format
+msgid "cupsctl: Unknown option \"%s\"!\n"
+msgstr "cupsctl: Opsi tak dikenal \"%s\"!\n"
+
+#: systemv/cupsctl.c:198
+#, c-format
+msgid "cupsctl: Unknown option \"-%c\"!\n"
+msgstr "cupsctl: Opsi tak dikenal \"-%c\"!\n"
+
+#: scheduler/main.c:200
+msgid "cupsd: Expected config filename after \"-c\" option!\n"
+msgstr "cupsd: Diharapkan nama berkas konfigurasi usai opsi \"-c\"!\n"
+
+#: scheduler/main.c:232 scheduler/main.c:239
+msgid "cupsd: Unable to get current directory!\n"
+msgstr "cupsd: Tidak bisa memperoleh direktori sekarang!\n"
+
+#: scheduler/main.c:303
+#, c-format
+msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
+msgstr "cupsd: Argumen \"%s\" tak dikenal - digagalkan!\n"
+
+#: scheduler/main.c:296
+#, c-format
+msgid "cupsd: Unknown option \"%c\" - aborting!\n"
+msgstr "cupsd: Opsi \"%c\" tak dikenal - digagalkan!\n"
+
+#: scheduler/main.c:266
+msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
+msgstr ""
+"cupsd: dukungan launchd(8) tidak dikompilasi serta, menjalankan dalam modus "
+"normal.\n"
+
+#: scheduler/cupsfilter.c:1094
+#, c-format
+msgid "cupsfilter: Invalid document number %d!\n"
+msgstr "cupsfilter: Jumlah dokumen %d tidak sah!\n"
+
+#: scheduler/cupsfilter.c:1088
+#, c-format
+msgid "cupsfilter: Invalid job ID %d!\n"
+msgstr "cupsfilter: ID tugas %d tak sah!\n"
+
+#: scheduler/cupsfilter.c:350
+msgid "cupsfilter: Only one filename can be specified!\n"
+msgstr "cupsfilter: Hanya satu nama berkas yang bisa ditentukan!\n"
+
+#: scheduler/cupsfilter.c:1136
+#, c-format
+msgid "cupsfilter: Unable to get job file - %s\n"
+msgstr "cupsfilter: Tidak bisa memperoleh berkas tugas - %s\n"
+
+#: systemv/cupstestppd.c:389
+msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
+msgstr "cupstestppd: Opsi -q tidak cocok dengan opsi -v.\n"
+
+#: systemv/cupstestppd.c:405
+msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
+msgstr "cupstestppd: Opsi -v tidak cocok dengan opsi -q.\n"
+
+#: systemv/lpstat.c:1231 systemv/lpstat.c:1234 systemv/lpstat.c:1237
+#, c-format
+msgid "device for %s/%s: %s\n"
+msgstr "perangkat untuk %s/%s: %s\n"
+
+#: systemv/lpstat.c:1218 systemv/lpstat.c:1221 systemv/lpstat.c:1224
+#, c-format
+msgid "device for %s: %s\n"
+msgstr "perangkat untuk %s: %s\n"
+
+#: cups/snmp.c:1037
+msgid "error-index uses indefinite length"
+msgstr "error-index memiliki panjang tak terdefinisi"
+
+#: cups/snmp.c:1029
+msgid "error-status uses indefinite length"
+msgstr "error-status memiliki panjang tak terdefinisi"
+
+#: cups/notify.c:90
+msgid "held"
+msgstr "ditahan"
+
+#: berkeley/lpc.c:214
+msgid "help\t\tget help on commands\n"
+msgstr "bantuan\t\tmemperoleh bantuan dari baris perintah\n"
+
+#: cups/notify.c:131
+msgid "idle"
+msgstr "menganggur"
+
+#: scheduler/ipp.c:8232
+msgid "job-printer-uri attribute missing!"
+msgstr "Atribut job-printer-uri hilang!"
+
+#: systemv/lpadmin.c:141 systemv/lpadmin.c:453
+msgid "lpadmin: Class name can only contain printable characters!\n"
+msgstr "lpadmin: Nama kelas hanya boleh diisi karakter cetak!\n"
+
+#: systemv/lpadmin.c:750
+msgid "lpadmin: Expected PPD after '-P' option!\n"
+msgstr "lpadmin: Diharapkan PPD usai opsi '-P'!\n"
+
+#: systemv/lpadmin.c:491
+msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
+msgstr "lpadmin: Diharapkan allow/deny:daftarpengguna usai opsi '-u'!\n"
+
+#: systemv/lpadmin.c:442
+msgid "lpadmin: Expected class after '-r' option!\n"
+msgstr "lpadmin: Diharapkan kelas usai opsi '-r'!\n"
+
+#: systemv/lpadmin.c:130
+msgid "lpadmin: Expected class name after '-c' option!\n"
+msgstr "lpadmin: Diharapkan nama kelas usai opsi '-c'!\n"
+
+#: systemv/lpadmin.c:643
+msgid "lpadmin: Expected description after '-D' option!\n"
+msgstr "lpadmin: Diharapkan deskripsi usai opsi '-D'!\n"
+
+#: systemv/lpadmin.c:550
+msgid "lpadmin: Expected device URI after '-v' option!\n"
+msgstr "lpadmin: Diharapkan URI perangkat usai opsi '-v'!\n"
+
+#: systemv/lpadmin.c:659
+msgid "lpadmin: Expected file type(s) after '-I' option!\n"
+msgstr "lpadmin: Diharapkan jenis berkas usai opsi '-I'!\n"
+
+#: systemv/lpadmin.c:212
+msgid "lpadmin: Expected hostname after '-h' option!\n"
+msgstr "lpadmin: Diharapkan nama host usai opsi '-h'!\n"
+
+#: systemv/lpadmin.c:257
+msgid "lpadmin: Expected interface after '-i' option!\n"
+msgstr "lpadmin: Diharapkan antarmuka usai opsi '-i'!\n"
+
+#: systemv/lpadmin.c:704
+msgid "lpadmin: Expected location after '-L' option!\n"
+msgstr "lpadmin: Diharapkan lokasi usai opsi '-L'!\n"
+
+#: systemv/lpadmin.c:338
+msgid "lpadmin: Expected model after '-m' option!\n"
+msgstr "lpadmin: Diharapkan model usai opsi '-m'!\n"
+
+#: systemv/lpadmin.c:358
+msgid "lpadmin: Expected name=value after '-o' option!\n"
+msgstr "lpadmin: Diharapkan nama=nilai usai opsi '-o'!\n"
+
+#: systemv/lpadmin.c:391
+msgid "lpadmin: Expected printer after '-p' option!\n"
+msgstr "lpadmin: Diharapkan pencetak usai opsi '-p'!\n"
+
+#: systemv/lpadmin.c:174
+msgid "lpadmin: Expected printer name after '-d' option!\n"
+msgstr "lpadmin: Diharapkan nama pencetak usai opsi '-d'!\n"
+
+#: systemv/lpadmin.c:584
+msgid "lpadmin: Expected printer or class after '-x' option!\n"
+msgstr "lpadmin: Diharapkan pencetak atau kelas usai opsi '-x'!\n"
+
+#: systemv/lpadmin.c:1128
+msgid "lpadmin: No member names were seen!\n"
+msgstr "lpadmin: Tidak ada nama anggota yang terlihat!\n"
+
+#: systemv/lpadmin.c:893
+#, c-format
+msgid "lpadmin: Printer %s is already a member of class %s.\n"
+msgstr "lpadmin: Pencetak %s sudah menjadi anggota kelas %s.\n"
+
+#: systemv/lpadmin.c:1142
+#, c-format
+msgid "lpadmin: Printer %s is not a member of class %s.\n"
+msgstr "lpadmin: Pencetak %s bukanlah anggota kelas %s.\n"
+
+#: systemv/lpadmin.c:185 systemv/lpadmin.c:402 systemv/lpadmin.c:595
+msgid "lpadmin: Printer name can only contain printable characters!\n"
+msgstr "lpadmin: Nama pencetak hanya bisa mengandung karakter cetak!\n"
+
+#: systemv/lpadmin.c:115
+msgid ""
+"lpadmin: Unable to add a printer to the class:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa menambah pencetak ke kelas:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:106 systemv/lpadmin.c:159 systemv/lpadmin.c:230
+#: systemv/lpadmin.c:291 systemv/lpadmin.c:310 systemv/lpadmin.c:376
+#: systemv/lpadmin.c:417 systemv/lpadmin.c:523 systemv/lpadmin.c:569
+#: systemv/lpadmin.c:615 systemv/lpadmin.c:677 systemv/lpadmin.c:723
+#: systemv/lpadmin.c:784
+#, c-format
+msgid "lpadmin: Unable to connect to server: %s\n"
+msgstr "lpadmin: Tidak bisa terkoneksi ke server: %s\n"
+
+#: systemv/lpadmin.c:1851
+#, c-format
+msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
+msgstr "lpadmin: Tidak bisa membuka berkas PPD \"%s\" - %s\n"
+
+#: systemv/lpadmin.c:1460
+#, c-format
+msgid "lpadmin: Unable to open file \"%s\": %s\n"
+msgstr "lpadmin: Tidak bisa membuka berkas \"%s\": %s\n"
+
+#: systemv/lpadmin.c:426
+msgid ""
+"lpadmin: Unable to remove a printer from the class:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa membuang pencetak dari kelas:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:732
+msgid ""
+"lpadmin: Unable to set the PPD file:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa mengeset berkas PPD:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:532
+msgid ""
+"lpadmin: Unable to set the device URI:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa mengeset URI perangkat:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:319
+msgid ""
+"lpadmin: Unable to set the interface script or PPD file:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa mengeset skrip antarmuka atau berkas PPD:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:239
+msgid ""
+"lpadmin: Unable to set the interface script:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa mengeset skrip antarmuka:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:624
+msgid ""
+"lpadmin: Unable to set the printer description:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa mengeset deskripsi pencetak:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:686
+msgid ""
+"lpadmin: Unable to set the printer location:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa mengeset lokasi pencetak:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:793
+msgid ""
+"lpadmin: Unable to set the printer options:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Tidak bisa mengeset opsi pencetak:\n"
+"         Anda harus menentukan nama pencetak lebih dulu!\n"
+
+#: systemv/lpadmin.c:508
+#, c-format
+msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
+msgstr "lpadmin: Opsi boleh/larang tak dikenal \"%s\"!\n"
+
+#: systemv/lpadmin.c:766
+#, c-format
+msgid "lpadmin: Unknown argument '%s'!\n"
+msgstr "lpadmin: Argumen tak dikenal '%s'!\n"
+
+#: systemv/lpadmin.c:761
+#, c-format
+msgid "lpadmin: Unknown option '%c'!\n"
+msgstr "lpadmin: Opsi tak dikenal '%c'!\n"
+
+#: systemv/lpadmin.c:665
+msgid "lpadmin: Warning - content type list ignored!\n"
+msgstr "lpadmin: Peringatan - jenis isi diabaikan!\n"
+
+#: berkeley/lpc.c:81 berkeley/lpc.c:109 berkeley/lpc.c:145
+msgid "lpc> "
+msgstr "lpc> "
+
+#: systemv/lpinfo.c:143
+msgid "lpinfo: Expected 1284 device ID string after --device-id!\n"
+msgstr ""
+
+#: systemv/lpinfo.c:196
+msgid "lpinfo: Expected language after --language!\n"
+msgstr "lpinfo: Diharapkan bahasa usai --language!\n"
+
+#: systemv/lpinfo.c:213
+msgid "lpinfo: Expected make and model after --make-and-model!\n"
+msgstr "lpinfo: Diharapkan pembuat dan model usai --make-and-model!\n"
+
+#: systemv/lpinfo.c:230
+msgid "lpinfo: Expected product string after --product!\n"
+msgstr "lpinfo: Diharapkan string produk usai --product!\n"
+
+#: systemv/lpinfo.c:161
+msgid "lpinfo: Expected scheme list after --exclude-schemes!\n"
+msgstr "lpinfo: Diharapkan daftar skema usai --exclude-scemes!\n"
+
+#: systemv/lpinfo.c:179
+msgid "lpinfo: Expected scheme list after --include-schemes!\n"
+msgstr "lpinfo: Diharapkan daftar skema usai --include-schemes!\n"
+
+#: systemv/lpinfo.c:247
+msgid "lpinfo: Expected timeout after --timeout!\n"
+msgstr "lpinfo: Diharapkan waktu habis usai --timeout!\n"
+
+#: systemv/lpinfo.c:270
+#, c-format
+msgid "lpinfo: Unknown argument '%s'!\n"
+msgstr "lpinfo: Argumen tak dikenal '%s'!\n"
+
+#: systemv/lpinfo.c:264
+#, c-format
+msgid "lpinfo: Unknown option '%c'!\n"
+msgstr "lpinfo: Opsi tak dikenal '%c'!\n"
+
+#: systemv/lpinfo.c:257
+#, c-format
+msgid "lpinfo: Unknown option '%s'!\n"
+msgstr "lpinfo: Opsi tak dikenal '%s'!\n"
+
+#: systemv/lpmove.c:141
+#, c-format
+msgid "lpmove: Unable to connect to server: %s\n"
+msgstr "lpmove: Tidak bisa terkoneksi ke server: %s\n"
+
+#: systemv/lpmove.c:125
+#, c-format
+msgid "lpmove: Unknown argument '%s'!\n"
+msgstr "lpmove: Argumen tak dikenal '%s'!\n"
+
+#: systemv/lpmove.c:103
+#, c-format
+msgid "lpmove: Unknown option '%c'!\n"
+msgstr "lpmove: Opsi tak dikenal '%c'!\n"
+
+#: systemv/lpoptions.c:154 systemv/lpoptions.c:172 systemv/lpoptions.c:248
+msgid "lpoptions: No printers!?!\n"
+msgstr "lpoptions: Tidak ada pencetak!?!\n"
+
+#: systemv/lpoptions.c:223
+#, c-format
+msgid "lpoptions: Unable to add printer or instance: %s\n"
+msgstr "lpoptions: Tidak bisa menambah pencetak: %s\n"
+
+#: systemv/lpoptions.c:507
+#, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: Tidak bisa mendapatkan berkas PPD untuk %s: %s\n"
+
+#: systemv/lpoptions.c:516
+#, c-format
+msgid "lpoptions: Unable to open PPD file for %s!\n"
+msgstr "lpoptions: Tidak bisa membuka berkas PPD untuk %s!\n"
+
+#: systemv/lpoptions.c:104
+msgid "lpoptions: Unknown printer or class!\n"
+msgstr "lpoptions: Pencetak atau kelas tak dikenal!\n"
+
+#: systemv/lppasswd.c:185
+msgid "lppasswd: Only root can add or delete passwords!\n"
+msgstr "lppasswd: Hanya root yang bisa menambah atau menghapus sandi!\n"
+
+#: systemv/lppasswd.c:314
+msgid "lppasswd: Password file busy!\n"
+msgstr "lppasswd: Berkas sandi sedang sibuk!\n"
+
+#: systemv/lppasswd.c:447
+msgid "lppasswd: Password file not updated!\n"
+msgstr "lppasswd: Berkas sandi tidak diperbaharui!\n"
+
+#: systemv/lppasswd.c:414
+msgid "lppasswd: Sorry, password doesn't match!\n"
+msgstr "lppasswd: Maaf, sandi tidak cocok!\n"
+
+#: systemv/lppasswd.c:264
+msgid ""
+"lppasswd: Sorry, password rejected.\n"
+"Your password must be at least 6 characters long, cannot contain\n"
+"your username, and must contain at least one letter and number.\n"
+msgstr ""
+"lppasswd: Maaf, sandi ditolak.\n"
+"Sandi Anda harus setidaknya 6 karakter, tidak memuat\n"
+"nama pengguna Anda, dan setidaknya memiliki satu huruf serta angka.\n"
+
+#: systemv/lppasswd.c:240
+msgid "lppasswd: Sorry, passwords don't match!\n"
+msgstr "lppasswd: Maaf, sandi tidak cocok!\n"
+
+#: systemv/lppasswd.c:211 systemv/lppasswd.c:229
+#, c-format
+msgid "lppasswd: Unable to copy password string: %s\n"
+msgstr "lppasswd: Tidak bisa menyalin string sandi: %s\n"
+
+#: systemv/lppasswd.c:317 systemv/lppasswd.c:326 systemv/lppasswd.c:344
+#, c-format
+msgid "lppasswd: Unable to open password file: %s\n"
+msgstr "lppasswd: Tidak bisa membuka berkas sandi: %s\n"
+
+#: systemv/lppasswd.c:379 systemv/lppasswd.c:392 systemv/lppasswd.c:424
+#, c-format
+msgid "lppasswd: Unable to write to password file: %s\n"
+msgstr "lppasswd: Tidak bisa menulis ke berkas sandi: %s\n"
+
+#: systemv/lppasswd.c:462
+#, c-format
+msgid "lppasswd: failed to backup old password file: %s\n"
+msgstr "lppasswd: gagal mencadangkan berkas sandi yang lama: %s\n"
+
+#: systemv/lppasswd.c:475
+#, c-format
+msgid "lppasswd: failed to rename password file: %s\n"
+msgstr "lppasswd: gagal mengubah nama berkas sandi: %s\n"
+
+#: systemv/lppasswd.c:404
+#, c-format
+msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
+msgstr "lppasswd: pengguna \"%s\" dan kelompok \"%s\" tidak ada.\n"
+
+#: systemv/lpstat.c:1039
+#, c-format
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
+msgstr ""
+"lpstat: kesalahan - nama variabel lingkungan %s bukanlah tujuan yang ada \"%s"
+"\"!\n"
+
+#: systemv/lpstat.c:969
+#, c-format
+msgid "members of class %s:\n"
+msgstr "anggota kelas %s:\n"
+
+#: berkeley/lpq.c:574
+msgid "no entries\n"
+msgstr "tak ada entri\n"
+
+#: systemv/lpstat.c:1043
+msgid "no system default destination\n"
+msgstr "tak ada tujuan sistem utama\n"
+
+#: scheduler/ipp.c:6277
+msgid "notify-events not specified!"
+msgstr "notify-events tidak dispesifikasikan!"
+
+#: scheduler/ipp.c:2114 scheduler/ipp.c:6182
+#, c-format
+msgid "notify-recipient-uri URI \"%s\" is already used!"
+msgstr "URI notify-recipient-uri \"%s\" sudah dipakai!"
+
+#: scheduler/ipp.c:2104 scheduler/ipp.c:6172
+#, c-format
+msgid "notify-recipient-uri URI \"%s\" uses unknown scheme!"
+msgstr "URI notify-recipient-uri \"%s\" memakai skema tak dikenal!"
+
+#: scheduler/ipp.c:4145 scheduler/ipp.c:7107 scheduler/ipp.c:7813
+#: scheduler/ipp.c:9278
+#, c-format
+msgid "notify-subscription-id %d no good!"
+msgstr "notify-subscription-id %d tidak baik!"
+
+#: cups/notify.c:87
+msgid "pending"
+msgstr "tunda"
+
+#: ppdc/ppdc.cxx:107 ppdc/ppdpo.cxx:93
+#, c-format
+msgid "ppdc: Adding include directory \"%s\"...\n"
+msgstr "ppdc: Menambahkan direktori \"%s\"...\n"
+
+#: ppdc/ppdpo.cxx:135
+#, c-format
+msgid "ppdc: Adding/updating UI text from %s...\n"
+msgstr "ppdf: Menambah/memperbaharui teks UI dari %s...\n"
+
+#: ppdc/ppdc-source.cxx:413
+#, c-format
+msgid "ppdc: Bad boolean value (%s) on line %d of %s.\n"
+msgstr "ppdc: Nilai boolean jelek (%s) pada baris %d dari %s.\n"
+
+#: ppdc/ppdc-source.cxx:1798
+#, c-format
+msgid "ppdc: Bad resolution name \"%s\" on line %d of %s!\n"
+msgstr "ppdc: Nama resolusi jelek \"%s\" pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1116
+#, c-format
+msgid "ppdc: Bad status keyword %s on line %d of %s!\n"
+msgstr "ppdc: Kata kunci status jelek %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:2035
+#, c-format
+msgid "ppdc: Bad variable substitution ($%c) on line %d of %s.\n"
+msgstr "ppdc: Subtitusi variabel jelek ($%c) pada baris %d dari %s.\n"
+
+#: ppdc/ppdc-source.cxx:2711
+#, c-format
+msgid "ppdc: Choice found on line %d of %s with no Option!\n"
+msgstr "ppdc: Ditemukan pilihan pada baris %d dari %s tanpa Option!\n"
+
+#: ppdc/ppdc-source.cxx:1700
+#, c-format
+msgid "ppdc: Duplicate #po for locale %s on line %d of %s!\n"
+msgstr "ppdc: Duplikat #po untuk lokal %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:935
+#, c-format
+msgid "ppdc: Expected a filter definition on line %d of %s!\n"
+msgstr "ppdc: Diharapkan definisi penyaring pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:958
+#, c-format
+msgid "ppdc: Expected a program name on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama program pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:397
+#, c-format
+msgid "ppdc: Expected boolean value on line %d of %s.\n"
+msgstr "ppdc: Diharapkan nilai boolean pada baris %d dari %s.\n"
+
+#: ppdc/ppdc-source.cxx:1096
+#, c-format
+msgid "ppdc: Expected charset after Font on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc-source.cxx:450
+#, c-format
+msgid "ppdc: Expected choice code on line %d of %s.\n"
+msgstr "ppdc: Diharapkan kode pilihan pada baris %d dari %s.\n"
+
+#: ppdc/ppdc-source.cxx:438
+#, c-format
+msgid "ppdc: Expected choice name/text on line %d of %s.\n"
+msgstr "ppdc: Diharapkan nama/teks pilihan pada baris %d dari %s.\n"
+
+#: ppdc/ppdc-source.cxx:506
+#, c-format
+msgid "ppdc: Expected color order for ColorModel on line %d of %s!\n"
+msgstr "ppdc: Diharapkan urutan warna untuk ColorModel pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:495
+#, c-format
+msgid "ppdc: Expected colorspace for ColorModel on line %d of %s!\n"
+msgstr "ppdc: Diharapkan ruang warna untuk ColorModel pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:517
+#, c-format
+msgid "ppdc: Expected compression for ColorModel on line %d of %s!\n"
+msgstr "ppdc: Diharapkan kompresi untuk ColorModel pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:698
+#, c-format
+msgid "ppdc: Expected constraints string for UIConstraints on line %d of %s!\n"
+msgstr "ppdc: Diharapkan string konstrain untuk UIConstraints pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:2897
+#, c-format
+msgid "ppdc: Expected driver type keyword following DriverType on line %d of %s!\n"
+msgstr "ppdc: Diharapkan kata kunci jenis penggerak diikuti DriverType pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:829
+#, c-format
+msgid "ppdc: Expected duplex type after Duplex on line %d of %s!\n"
+msgstr "ppdc: Diharapkan jenis dupleks usai Duplex pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1080
+#, c-format
+msgid "ppdc: Expected encoding after Font on line %d of %s!\n"
+msgstr "ppdc: Diharapkan enkode usai Font pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1691
+#, c-format
+msgid "ppdc: Expected filename after #po %s on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama berkas usai #po %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1208
+#, c-format
+msgid "ppdc: Expected group name/text on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama/teks kelompok pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:2611
+#, c-format
+msgid "ppdc: Expected include filename on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama berkas yang disertakan pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1504
+#, c-format
+msgid "ppdc: Expected integer on line %d of %s!\n"
+msgstr "ppdc: Diharapkan integer pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1683
+#, c-format
+msgid "ppdc: Expected locale after #po on line %d of %s!\n"
+msgstr "ppdc: Diharapkan lokal usai #po pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:356
+#, c-format
+msgid "ppdc: Expected name after %s on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama usai %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3269
+#, c-format
+msgid "ppdc: Expected name after FileName on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama usai FileName pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1061
+#, c-format
+msgid "ppdc: Expected name after Font on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama usai Font pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3100
+#, c-format
+msgid "ppdc: Expected name after Manufacturer on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama usai Manufacturer pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3133
+#, c-format
+msgid "ppdc: Expected name after MediaSize on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama usai MediaSize pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3223
+#, c-format
+msgid "ppdc: Expected name after ModelName on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama usai ModelName pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3286
+#, c-format
+msgid "ppdc: Expected name after PCFileName on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama usai PCFileName pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1159
+#, c-format
+msgid "ppdc: Expected name/text after %s on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama/teks usai %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1248
+#, c-format
+msgid "ppdc: Expected name/text after Installable on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama/teks usai Installable pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1784
+#, c-format
+msgid "ppdc: Expected name/text after Resolution on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama/teks usai Resolution pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:482
+#, c-format
+msgid "ppdc: Expected name/text combination for ColorModel on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nama/teks kombinasi untuk ColorModel pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1576
+#, c-format
+msgid "ppdc: Expected option name/text on line %d of %s!\n"
+msgstr "ppdc: Diharapkan opsi nama/teks pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1610
+#, c-format
+msgid "ppdc: Expected option section on line %d of %s!\n"
+msgstr "ppdc: Diharapkan opsi seksi pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1588
+#, c-format
+msgid "ppdc: Expected option type on line %d of %s!\n"
+msgstr "ppdc: Diharapkan opsi jenis pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1767
+#, c-format
+msgid "ppdc: Expected override field after Resolution on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc-source.cxx:1007
+#, c-format
+msgid "ppdc: Expected real number on line %d of %s!\n"
+msgstr "ppdc: Diharapkan bilangan real pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:575
+#, c-format
+msgid ""
+"ppdc: Expected resolution/mediatype following ColorProfile on line %d of %"
+"s!\n"
+msgstr "ppdc: Diharapkan resolusi/jenis media diikuti ColorProfile pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1865
+#, c-format
+msgid ""
+"ppdc: Expected resolution/mediatype following SimpleColorProfile on line %d "
+"of %s!\n"
+msgstr "ppdc: Diharapkan resolusi/jenis media diikuti SimpleColorProfile pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:364
+#, c-format
+msgid "ppdc: Expected selector after %s on line %d of %s!\n"
+msgstr "ppdc: Diharapan selektor usai %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1104
+#, c-format
+msgid "ppdc: Expected status after Font on line %d of %s!\n"
+msgstr "ppdc: Diharapkan status usai Font pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:2786
+#, c-format
+msgid "ppdc: Expected string after Copyright on line %d of %s!\n"
+msgstr "ppdc: Diharapkan string usai Copyright pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3389
+#, c-format
+msgid "ppdc: Expected string after Version on line %d of %s!\n"
+msgstr "ppdc: Diharapkan string usai Version pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:731
+#, c-format
+msgid "ppdc: Expected two option names on line %d of %s!\n"
+msgstr "ppdc: Diharapkan dua opsi nama pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:375
+#, c-format
+msgid "ppdc: Expected value after %s on line %d of %s!\n"
+msgstr "ppdc: Diharapkan nilai usai %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1088
+#, c-format
+msgid "ppdc: Expected version after Font on line %d of %s!\n"
+msgstr "ppdc: Diharapkan versi usai Font pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:230
+#, c-format
+msgid "ppdc: Invalid #include/#po filename \"%s\"!\n"
+msgstr "ppdc: Nama berkas #include/#po \"%s\" tak sah!\n"
+
+#: ppdc/ppdc-source.cxx:975
+#, c-format
+msgid "ppdc: Invalid cost for filter on line %d of %s!\n"
+msgstr "ppdc: Nilai tak sah bagi penyaring pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:967
+#, c-format
+msgid "ppdc: Invalid empty MIME type for filter on line %d of %s!\n"
+msgstr "ppdc: Jenis MIME kosong tak sah untuk penyaring pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:983
+#, c-format
+msgid "ppdc: Invalid empty program name for filter on line %d of %s!\n"
+msgstr "ppdc: Nama program korong tak sah untuk penyaring pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1630
+#, c-format
+msgid "ppdc: Invalid option section \"%s\" on line %d of %s!\n"
+msgstr "ppdc: Seksi opsi \"%s\" tak sah pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:1602
+#, c-format
+msgid "ppdc: Invalid option type \"%s\" on line %d of %s!\n"
+msgstr "ppdc: Jenis opsi \"%s\" tak sah pada baris %d dari %s!\n"
+
+#: ppdc/ppdc.cxx:243 ppdc/ppdpo.cxx:123
+#, c-format
+msgid "ppdc: Loading driver information file \"%s\"...\n"
+msgstr "ppdc: Memuat berkas informasi penggerak \"%s\"...\n"
+
+#: ppdc/ppdc.cxx:179
+#, c-format
+msgid "ppdc: Loading messages for locale \"%s\"...\n"
+msgstr "ppdc: Memuat pesan untuk loakl \"%s\"...\n"
+
+#: ppdc/ppdc.cxx:120
+#, c-format
+msgid "ppdc: Loading messages from \"%s\"...\n"
+msgstr "ppdc: Memuat pesan dari \"%s\"...\n"
+
+#: ppdc/ppdc-source.cxx:2404 ppdc/ppdc-source.cxx:2636
+#, c-format
+msgid "ppdc: Missing #endif at end of \"%s\"!\n"
+msgstr "ppdc: Kehilangan #endif di akhir \"%s\"!\n"
+
+#: ppdc/ppdc-source.cxx:2505 ppdc/ppdc-source.cxx:2540
+#: ppdc/ppdc-source.cxx:2570
+#, c-format
+msgid "ppdc: Missing #if on line %d of %s!\n"
+msgstr "ppdc: Kehilangan #if pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-driver.cxx:722
+#, c-format
+msgid "ppdc: No message catalog provided for locale %s!\n"
+msgstr "ppdc: Tak tersedia katalog pesan untuk lokal %s!\n"
+
+#: ppdc/ppdc-source.cxx:1653 ppdc/ppdc-source.cxx:2874
+#: ppdc/ppdc-source.cxx:2960 ppdc/ppdc-source.cxx:3053
+#: ppdc/ppdc-source.cxx:3186 ppdc/ppdc-source.cxx:3319
+#, c-format
+msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc-source.cxx:1646
+#, c-format
+msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc-source.cxx:708
+#, c-format
+msgid "ppdc: Option constraint must *name on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc-source.cxx:2487
+#, c-format
+msgid "ppdc: Too many nested #if's on line %d of %s!\n"
+msgstr "ppdc: Terlalu banyak #if bersarang pada baris %d dari %s!\n"
+
+#: ppdc/ppdc.cxx:346
+#, c-format
+msgid "ppdc: Unable to create PPD file \"%s\" - %s.\n"
+msgstr "ppdc: Tidak bisa membuat berkas PPD \"%s\" - %s.\n"
+
+#: ppdc/ppdc.cxx:258
+#, c-format
+msgid "ppdc: Unable to create output directory %s: %s\n"
+msgstr "ppdc: Tidak bisa membuat direktori keluaran %s: %s\n"
+
+#: ppdc/ppdc.cxx:279
+#, c-format
+msgid "ppdc: Unable to create output pipes: %s\n"
+msgstr "ppdc: Tidak bisa membuat pipa keluaran: %s\n"
+
+#: ppdc/ppdc.cxx:295 ppdc/ppdc.cxx:302
+#, c-format
+msgid "ppdc: Unable to execute cupstestppd: %s\n"
+msgstr "ppdc: Tidak bisa mengeksekusi cupstestppd: %s\n"
+
+#: ppdc/ppdc-source.cxx:1732
+#, c-format
+msgid "ppdc: Unable to find #po file %s on line %d of %s!\n"
+msgstr "ppdc: Tidak bisa menemukan berkas #po %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:2643
+#, c-format
+msgid "ppdc: Unable to find include file \"%s\" on line %d of %s!\n"
+msgstr "ppdc: Tidak bisa menemukan berkas yang disertakan \"%s\" pada baris %d dari %s!\n"
+
+#: ppdc/ppdc.cxx:190
+#, c-format
+msgid "ppdc: Unable to find localization for \"%s\" - %s\n"
+msgstr "ppdc: Tidak bisa menemukan lokalisasi bagi \"%s\" - %s\n"
+
+#: ppdc/ppdc.cxx:129
+#, c-format
+msgid "ppdc: Unable to load localization file \"%s\" - %s\n"
+msgstr "ppdc: Tidak bisa memuat berkas lokalisasi \"%s\" - %s\n"
+
+#: ppdc/ppdc-source.cxx:2056
+#, c-format
+msgid "ppdc: Undefined variable (%s) on line %d of %s.\n"
+msgstr "ppdc: Variabel tak berdefinisi (%s) pada baris %d dari %s.\n"
+
+#: ppdc/ppdc-source.cxx:2916
+#, c-format
+msgid "ppdc: Unknown driver type %s on line %d of %s!\n"
+msgstr "ppdc: Jenis penggerak tak dikenal %s pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:909
+#, c-format
+msgid "ppdc: Unknown duplex type \"%s\" on line %d of %s!\n"
+msgstr "ppdc: Jenis dupleks tak dikenal \"%s\" pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3146
+#, c-format
+msgid "ppdc: Unknown media size \"%s\" on line %d of %s!\n"
+msgstr "ppdc: Ukuran media tak dikenal \"%s\" pada baris %d dari %s!\n"
+
+#: ppdc/ppdc-source.cxx:3400
+#, c-format
+msgid "ppdc: Unknown token \"%s\" seen on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc-source.cxx:1017
+#, c-format
+msgid "ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc-source.cxx:2166
+#, c-format
+msgid "ppdc: Unterminated string starting with %c on line %d of %s!\n"
+msgstr ""
+
+#: ppdc/ppdc.cxx:352
+#, c-format
+msgid "ppdc: Writing %s...\n"
+msgstr "ppdc: Menulis %s...\n"
+
+#: ppdc/ppdc.cxx:142
+#, c-format
+msgid "ppdc: Writing PPD files to directory \"%s\"...\n"
+msgstr "ppdc: Menulis berkas PPD ke direktori \"%s\"...\n"
+
+#: ppdc/ppdmerge.cxx:138
+#, c-format
+msgid "ppdmerge: Bad LanguageVersion \"%s\" in %s!\n"
+msgstr "ppdmerge: LanguageVersion \"%s\" jelek pada %s!\n"
+
+#: ppdc/ppdmerge.cxx:178
+#, c-format
+msgid "ppdmerge: Ignoring PPD file %s...\n"
+msgstr "ppdmerge: Mengabaikan berkas PPD %s...\n"
+
+#: ppdc/ppdmerge.cxx:162
+#, c-format
+msgid "ppdmerge: Unable to backup %s to %s- %s\n"
+msgstr "ppdmerge: Tidak bisa mencadangkan %s ke %s- %s\n"
+
+#: systemv/lpstat.c:1769
+#, c-format
+msgid "printer %s disabled since %s -\n"
+msgstr "pencetak %s ditiadakan sejak %s -\n"
+
+#: systemv/lpstat.c:1758
+#, c-format
+msgid "printer %s is idle.  enabled since %s\n"
+msgstr "pencetak %s sedang menganggur.  diaktifkan sejak %s\n"
+
+#: systemv/lpstat.c:1763
+#, c-format
+msgid "printer %s now printing %s-%d.  enabled since %s\n"
+msgstr "pencetak %s saat ini tengah mencetak %s-%d.  diaktifkan sejak %s\n"
+
+#: systemv/lpstat.c:1881
+#, c-format
+msgid "printer %s/%s disabled since %s -\n"
+msgstr "pencetak %s/%s dinonaktifkan sejak %s -\n"
+
+#: systemv/lpstat.c:1867
+#, c-format
+msgid "printer %s/%s is idle.  enabled since %s\n"
+msgstr "pencetak %s/%s sedang menganggur.  diaktifkan sejak %s\n"
+
+#: systemv/lpstat.c:1874
+#, c-format
+msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
+msgstr "pencetak %s/%s saat ini tengah mencetak %s-%d.  diaktifkan sejak %s\n"
+
+#: cups/notify.c:93 cups/notify.c:134
+msgid "processing"
+msgstr "memproses"
+
+#: systemv/lp.c:660
+#, c-format
+msgid "request id is %s-%d (%d file(s))\n"
+msgstr "identitas permintaan adalah %s-%d (%d berkas)\n"
+
+#: cups/snmp.c:1021
+msgid "request-id uses indefinite length"
+msgstr "request-id memiliki panjang tak terdefinisi"
+
+#: systemv/lpstat.c:2008
+msgid "scheduler is not running\n"
+msgstr "penjadwal tidak berjalan\n"
+
+#: systemv/lpstat.c:2004
+msgid "scheduler is running\n"
+msgstr "penjadwal tengah berjalan\n"
+
+#: cups/adminutil.c:2274
+#, c-format
+msgid "stat of %s failed: %s"
+msgstr "status dari %s gagal: %s"
+
+#: berkeley/lpc.c:216
+msgid "status\t\tshow status of daemon and queue\n"
+msgstr "status\t\tmenampilkan status daemon dan antrian\n"
+
+#: cups/notify.c:96 cups/notify.c:137
+msgid "stopped"
+msgstr "dihentikan"
+
+#: systemv/lpstat.c:1017
+#, c-format
+msgid "system default destination: %s\n"
+msgstr "tujuan utama sistem: %s\n"
+
+#: systemv/lpstat.c:1014
+#, c-format
+msgid "system default destination: %s/%s\n"
+msgstr "tujuan utama sistem: %s/%s\n"
+
+#: cups/notify.c:108 cups/notify.c:140
+msgid "unknown"
+msgstr "tak dikenal"
+
+#: cups/notify.c:117
+msgid "untitled"
+msgstr "tak berjudul"
+
+#: cups/snmp.c:1046
+msgid "variable-bindings uses indefinite length"
+msgstr "variable-bindings memiliki panjang tak terdefinisi"
+
+
+#
+# End of "$Id$".
+#
index 5287b76ea31a1dc57824073eeaf1355481429772..d92111a75011773827b8ad5606d6a71b8b167a07 100644 (file)
@@ -12,7 +12,7 @@
 .\"   which should have been included with this file.  If this file is
 .\"   file is missing or damaged, see the license at "http://www.cups.org/".
 .\"
-.TH cupstestppd 1 "CUPS" "6 October 2009" "Apple Inc."
+.TH cupstestppd 1 "CUPS" "19 November 2009" "Apple Inc."
 .SH NAME
 cupstestppd \- test conformance of ppd files
 .SH SYNOPSIS
@@ -44,6 +44,10 @@ on the standard input.
 .SH OPTIONS
 \fIcupstestppd\fR supports the following options:
 .TP 5
+-I filename
+.br
+Ignores all PCFileName warnings.
+.TP 5
 -I filters
 .br
 Ignores all filter errors.
index 051f00c597234b6218449414f8c5d5aba5309b0d..b6eb952b05f0dd4fde67276f1bd869a9a59766ce 100644 (file)
@@ -571,7 +571,7 @@ d 0755 root sys $SERVERROOT -
 d 0755 root $CUPS_GROUP $SERVERROOT/interfaces -
 d 0755 root $CUPS_GROUP $SERVERROOT/ppd -
 d 0700 root $CUPS_GROUP $SERVERROOT/ssl -
-c $CUPS_PERM root $CUPS_GROUP $SERVERROOT conf/*.conf
+c $CUPS_PERM root $CUPS_GROUP $SERVERROOT/ conf/*.conf
 f $CUPS_PERM root $CUPS_GROUP $SERVERROOT/cupsd.conf.default conf/cupsd.conf
 
 %if PAMDIR
@@ -742,7 +742,7 @@ f 0444 root sys $AMANDIR/man$MAN8DIR/cups-lpd.$MAN8EXT man/cups-lpd.$MAN8EXT
 
 # Startup scripts
 %system darwin
-f 0444 root sys /System/Library/LaunchDaemons/org.cups.cupsd.plist init/org.cups.cupsd.plist
+f 0444 root sys /System/Library/LaunchDaemons/org.cups.cupsd.plist scheduler/org.cups.cupsd.plist
 %preremove <<EOF
 launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist || exit 0
 killall cupsd || exit 0
@@ -755,7 +755,7 @@ EOF
 launchctl load -D system /System/Library/LaunchDaemons/org.cups.cupsd.plist
 EOF
 %subpackage lpd
-f 0444 root sys /System/Library/LaunchDaemons/org.cups.cups-lpd.plist init/org.cups.cups-lpd.plist
+f 0444 root sys /System/Library/LaunchDaemons/org.cups.cups-lpd.plist scheduler/org.cups.cups-lpd.plist
 %preremove <<EOF
 launchctl unload /System/Library/LaunchDaemons/org.cups.cups-lpd.plist || exit 0
 EOF
@@ -769,10 +769,10 @@ EOF
 %subpackage
 
 %system !darwin
-i 0755 root sys cups init/cups.sh start(@RCSTART@) stop(@RCSTOP) runlevels(@RCLEVELS@)
+i 0755 root sys cups scheduler/cups.sh start(@RCSTART@) stop(@RCSTOP) runlevels(@RCLEVELS@)
 %subpackage lpd
 %if XINETD
-f 0444 root sys $XINETD/cups-lpd init/cups-lpd
+f 0444 root sys $XINETD/cups-lpd scheduler/cups-lpd.xinetd
 %endif
 %subpackage
 
index 22a2828afda4ee7a8b4e1ce5b80556e2a2b2122e..91469e62ace8dc9b11d3a460c52b69672b642856 100644 (file)
@@ -168,6 +168,9 @@ ppdcCatalog::find_message(
   ppdcMessage  *m;                     // Current message
 
 
+  if (!*id)
+    return (id);
+
   for (m = (ppdcMessage *)messages->first();
        m;
        m = (ppdcMessage *)messages->next())
index f720e0bf045b656221f84a76e6089a45536ef978..8c113d322bc198cdaae563cec63148f9be8fac30 100644 (file)
@@ -690,7 +690,7 @@ ppdcDriver::write_ppd_file(
       for (int i = 0; i < 9; i ++)
        _cupsStrFormatd(profile[i], profile[i] + sizeof(profile[0]),
                        p->profile[i], loc);
-      
+
       cupsFilePrintf(fp,
                      "*cupsColorProfile %s/%s: \"%s %s %s %s %s %s %s %s %s %s "
                     "%s\"%s", p->resolution->value, p->media_type->value,
@@ -1026,7 +1026,7 @@ ppdcDriver::write_ppd_file(
       if (!o->choices->count)
         continue;
 
-      if (!o->text->value || !strcmp(o->name->value, o->text->value))
+      if (!o->text->value)
        cupsFilePrintf(fp, "*OpenUI *%s/%s: ", o->name->value,
                       catalog->find_message(o->name->value));
       else
@@ -1093,9 +1093,9 @@ ppdcDriver::write_ppd_file(
           c = (ppdcChoice *)o->choices->next())
       {
         // Write this choice...
-       if (!c->text->value || !strcmp(c->name->value, c->text->value))
-          cupsFilePrintf(fp, "*%s %s: \"%s\"%s", o->name->value,
-                        catalog->find_message(c->name->value),
+       if (!c->text->value)
+          cupsFilePrintf(fp, "*%s %s/%s: \"%s\"%s", o->name->value,
+                         c->name->value, catalog->find_message(c->name->value),
                         c->code->value, lf);
         else
           cupsFilePrintf(fp, "*%s %s/%s: \"%s\"%s", o->name->value,
@@ -1138,10 +1138,11 @@ ppdcDriver::write_ppd_file(
          if (!a->selector->value || !a->selector->value[0])
            cupsFilePrintf(fp, "*%s", a->name->value);
          else if (!a->text->value || !a->text->value[0])
-           cupsFilePrintf(fp, "*%s %s", a->name->value, a->selector->value);
+           cupsFilePrintf(fp, "*%s %s/%s", a->name->value, a->selector->value,
+                          catalog->find_message(a->selector->value));
          else
            cupsFilePrintf(fp, "*%s %s/%s", a->name->value, a->selector->value,
-                          a->text->value);
+                          catalog->find_message(a->text->value));
 
           cupsFilePrintf(fp, ": %s%s", a->value->value, lf);
        }
@@ -1278,12 +1279,8 @@ ppdcDriver::write_ppd_file(
       // Finally the localizable attributes...
       for (a = (ppdcAttr *)attrs->first(); a; a = (ppdcAttr *)attrs->next())
       {
-        if ((!a->text || !a->text->value || !a->text->value[0]) &&
-           strncmp(a->name->value, "Custom", 6) &&
-           strncmp(a->name->value, "ParamCustom", 11))
-         continue;
-
         if (!a->localizable &&
+           (!a->text || !a->text->value || !a->text->value[0]) &&
            strcmp(a->name->value, "APCustomColorMatchingName") &&
            strcmp(a->name->value, "APPrinterPreset") &&
            strcmp(a->name->value, "cupsICCProfile") &&
@@ -1291,7 +1288,7 @@ ppdcDriver::write_ppd_file(
            strcmp(a->name->value, "cupsMarkerName") &&
            strncmp(a->name->value, "Custom", 6) &&
            strncmp(a->name->value, "ParamCustom", 11))
-          continue;
+         continue;
 
         cupsFilePrintf(fp, "*%s.%s %s/%s: \"%s\"%s", locale->value,
                       a->name->value, a->selector->value,
index ee6b0a9a0be3af011791cc31dac45ce015b57e18..abcb0f183ab655a2d65dcb3cee71cbfc05ef44d9 100644 (file)
@@ -631,7 +631,7 @@ cupsdReadConfiguration(void)
   MaxClients               = 100;
   MaxClientsPerHost        = 0;
   MaxLogSize               = 1024 * 1024;
-  MaxPrinterHistory        = 10;
+  MaxPrinterHistory        = 0;
   MaxRequestSize           = 0;
   MultipleOperationTimeout = DEFAULT_TIMEOUT;
   ReloadTimeout                   = DEFAULT_KEEPALIVE;
@@ -969,7 +969,7 @@ cupsdReadConfiguration(void)
                             Group, 1, 1) < 0 ||
        cupsdCheckPermissions(StateDir, "certs", RunUser ? 0711 : 0511, User,
                             SystemGroupIDs[0], 1, 1) < 0 ||
-       cupsdCheckPermissions(ServerRoot, NULL, 0755, RunUser, 
+       cupsdCheckPermissions(ServerRoot, NULL, 0755, RunUser,
                             Group, 1, 0) < 0 ||
        cupsdCheckPermissions(ServerRoot, "ppd", 0755, RunUser,
                             Group, 1, 1) < 0 ||
@@ -1896,7 +1896,7 @@ parse_aaa(cupsd_location_t *loc,  /* I - Location */
          cupsdDenyIP(loc, ones, zeros);
       }
 #ifdef AF_INET6
-      else if (value[0] == '*' || value[0] == '.' || 
+      else if (value[0] == '*' || value[0] == '.' ||
               (!isdigit(value[0] & 255) && value[0] != '['))
 #else
       else if (value[0] == '*' || value[0] == '.' || !isdigit(value[0] & 255))
@@ -2666,7 +2666,7 @@ read_configuration(cups_file_t *fp)       /* I - File to read from */
 
        for (addr = addrlist; addr; addr = addr->next)
          if (addr->addr.addr.sa_family == AF_INET)
-           break;          
+           break;
 
        if (addr)
        {
@@ -2676,7 +2676,7 @@ read_configuration(cups_file_t *fp)       /* I - File to read from */
          cupsdLogMessage(CUPSD_LOG_INFO,
                          "Sending browsing info to %s:%d (IPv4)",
                          temp, ntohs(dira->to.ipv4.sin_port));
-  
+
          NumBrowsers ++;
        }
        else
@@ -2816,7 +2816,7 @@ read_configuration(cups_file_t *fp)       /* I - File to read from */
              cupsdDenyIP(location, ones, zeros);
          }
 #ifdef AF_INET6
-         else if (value[0] == '*' || value[0] == '.' || 
+         else if (value[0] == '*' || value[0] == '.' ||
                   (!isdigit(value[0] & 255) && value[0] != '['))
 #else
          else if (value[0] == '*' || value[0] == '.' || !isdigit(value[0] & 255))
@@ -2912,7 +2912,7 @@ read_configuration(cups_file_t *fp)       /* I - File to read from */
       */
 
 #ifdef AF_INET6
-      if (value[0] == '*' || value[0] == '.' || 
+      if (value[0] == '*' || value[0] == '.' ||
           (!isdigit(value[0] & 255) && value[0] != '['))
 #else
       if (value[0] == '*' || value[0] == '.' || !isdigit(value[0] & 255))
@@ -2996,14 +2996,14 @@ read_configuration(cups_file_t *fp)     /* I - File to read from */
 
        for (addr = addrlist; addr; addr = addr->next)
          if (addr->addr.addr.sa_family == AF_INET)
-           break;          
+           break;
 
        if (addr)
        {
          memcpy(&(relay->to), &(addrlist->addr), sizeof(relay->to));
-  
+
          httpAddrString(&(relay->to), temp, sizeof(temp));
-  
+
          if (relay->from.type == CUPSD_AUTH_IP)
            snprintf(temp2, sizeof(temp2), "%u.%u.%u.%u/%u.%u.%u.%u",
                     relay->from.mask.ip.address[0] >> 24,
@@ -3016,10 +3016,10 @@ read_configuration(cups_file_t *fp)     /* I - File to read from */
                     relay->from.mask.ip.netmask[0] & 255);
          else
            strlcpy(temp2, relay->from.mask.name.name, sizeof(temp2));
-  
+
          cupsdLogMessage(CUPSD_LOG_INFO, "Relaying from %s to %s:%d (IPv4)",
                          temp2, temp, ntohs(relay->to.ipv4.sin_port));
-  
+
          NumRelays ++;
        }
        else
@@ -3580,7 +3580,7 @@ read_location(cups_file_t *fp,            /* I - Configuration file */
         else
          continue;
       }
-      
+
       if ((loc = cupsdCopyLocation(&parent)) == NULL)
         return (0);
 
@@ -3722,7 +3722,7 @@ read_policy(cups_file_t *fp,              /* I - Configuration file */
         else
          continue;
       }
-      
+
      /*
       * Scan for IPP operation names...
       */
index 49b2672737db1d6200af66aac357ba291233dc7e..f8d882e3a54f08de3c1d54715b29d5c751e96cf3 100644 (file)
@@ -50,6 +50,7 @@
  *                                printer or update the broadcast contents.
  *   dnssdStop()                - Stop all DNS-SD registrations.
  *   dnssdUpdate()              - Handle DNS-SD queries.
+ *   get_auth_info_required()   - Get the auth-info-required value to advertise.
  *   get_hostconfig()           - Get an /etc/hostconfig service setting.
  *   is_local_queue()           - Determine whether the URI points at a local
  *                                queue.
@@ -63,6 +64,7 @@
  *   send_ldap_ou()             - Send LDAP ou registrations.
  *   send_ldap_browse()         - Send LDAP printer registrations.
  *   ldap_dereg_printer()       - Delete printer from directory
+ *   ldap_dereg_ou()            - Remove the organizational unit.
  *   send_slp_browse()          - Register the specified printer with SLP.
  *   slp_attr_callback()        - SLP attribute callback
  *   slp_dereg_printer()        - SLPDereg() the specified printer
@@ -996,93 +998,91 @@ cupsdSendBrowseList(void)
  * 'ldap_rebind_proc()' - Callback function for LDAP rebind
  */
 
-static int
-ldap_rebind_proc (LDAP *RebindLDAPHandle,
-                  LDAP_CONST char *refsp,
-                  ber_tag_t request,
-                  ber_int_t msgid,
-                  void *params)
+static int                             /* O - Result code */
+ldap_rebind_proc(
+    LDAP            *RebindLDAPHandle, /* I - LDAP handle */
+    LDAP_CONST char *refsp,            /* I - ??? */
+    ber_tag_t       request,           /* I - ??? */
+    ber_int_t       msgid,             /* I - ??? */
+    void            *params)           /* I - ??? */
 {
-  int               rc;
+  int          rc;                     /* Result code */
+#    if LDAP_API_VERSION > 3000
+  struct berval        bval;                   /* Bind value */
+#    endif /* LDAP_API_VERSION > 3000 */
 
  /*
   * Bind to new LDAP server...
   */
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                  "ldap_rebind_proc: Rebind to %s", refsp);
+  cupsdLogMessage(CUPSD_LOG_DEBUG2, "ldap_rebind_proc: Rebind to %s", refsp);
 
 #    if LDAP_API_VERSION > 3000
-  struct berval bval;
   bval.bv_val = BrowseLDAPPassword;
   bval.bv_len = (BrowseLDAPPassword == NULL) ? 0 : strlen(BrowseLDAPPassword);
 
-  rc = ldap_sasl_bind_s(RebindLDAPHandle, BrowseLDAPBindDN, LDAP_SASL_SIMPLE, &bval, NULL, NULL, NULL);
+  rc = ldap_sasl_bind_s(RebindLDAPHandle, BrowseLDAPBindDN, LDAP_SASL_SIMPLE,
+                        &bval, NULL, NULL, NULL);
 #    else
-  rc = ldap_bind_s(RebindLDAPHandle, BrowseLDAPBindDN,
-                   BrowseLDAPPassword, LDAP_AUTH_SIMPLE);
+  rc = ldap_bind_s(RebindLDAPHandle, BrowseLDAPBindDN, BrowseLDAPPassword,
+                   LDAP_AUTH_SIMPLE);
 #    endif /* LDAP_API_VERSION > 3000 */
 
   return (rc);
 }
 
-#  else /* defined(LDAP_API_FEATURE_X_OPENLDAP) && (LDAP_API_VERSION > 2000) */
 
+#  else /* defined(LDAP_API_FEATURE_X_OPENLDAP) && (LDAP_API_VERSION > 2000) */
 /*
  * 'ldap_rebind_proc()' - Callback function for LDAP rebind
  */
 
-static int
-ldap_rebind_proc (LDAP *RebindLDAPHandle,
-                  char **dnp,
-                  char **passwdp,
-                  int *authmethodp,
-                  int freeit,
-                  void *arg)
+static int                             /* O - Result code */
+ldap_rebind_proc(
+    LDAP *RebindLDAPHandle,            /* I - LDAP handle */
+    char **dnp,                                /* I - ??? */
+    char **passwdp,                    /* I - ??? */
+    int  *authmethodp,                 /* I - ??? */
+    int  freeit,                       /* I - ??? */
+    void *arg)                         /* I - ??? */
 {
-  switch ( freeit ) {
-
-  case 1:
-
-     /*
-      * Free current values...
-      */
-
-      cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                     "ldap_rebind_proc: Free values...");
-
-      if ( dnp && *dnp ) {
-        free( *dnp );
-      }
-      if ( passwdp && *passwdp ) {
-        free( *passwdp );
-      }
-      break;
+  switch (freeit)
+  {
+    case 1:
+       /*
+        * Free current values...
+        */
 
-  case 0:
+        cupsdLogMessage(CUPSD_LOG_DEBUG2, "ldap_rebind_proc: Free values...");
 
-     /*
-      * Return credentials for LDAP referal...
-      */
+        if (dnp && *dnp)
+          free(*dnp);
 
-      cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                     "ldap_rebind_proc: Return necessary values...");
+        if (passwdp && *passwdp)
+          free(*passwdp);
+        break;
 
-      *dnp = strdup(BrowseLDAPBindDN);
-      *passwdp = strdup(BrowseLDAPPassword);
-      *authmethodp = LDAP_AUTH_SIMPLE;
-      break;
+    case 0:
+       /*
+        * Return credentials for LDAP referal...
+        */
 
-  default:
+        cupsdLogMessage(CUPSD_LOG_DEBUG2,
+                        "ldap_rebind_proc: Return necessary values...");
 
-     /*
-      * Should never happen...
-      */
+        *dnp         = strdup(BrowseLDAPBindDN);
+        *passwdp     = strdup(BrowseLDAPPassword);
+        *authmethodp = LDAP_AUTH_SIMPLE;
+        break;
 
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "LDAP rebind has been called with wrong freeit value!");
-      break;
+    default:
+       /*
+        * Should never happen...
+        */
 
+        cupsdLogMessage(CUPSD_LOG_ERROR,
+                        "LDAP rebind has been called with wrong freeit value!");
+        break;
   }
 
   return (LDAP_SUCCESS);
@@ -1096,25 +1096,22 @@ ldap_rebind_proc (LDAP *RebindLDAPHandle,
  * 'ldap_connect()' - Start new LDAP connection
  */
 
-static LDAP *
+static LDAP *                          /* O - LDAP handle */
 ldap_connect(void)
 {
- /* 
-  * Open LDAP handle...
-  */
-
-  int          rc;                             /* LDAP API status */
-  int          version = 3;                    /* LDAP version */
-  struct berval        bv = {0, ""};                   /* SASL bind value */
-  LDAP         *TempBrowseLDAPHandle=NULL;     /* Temporary LDAP Handle */
+  int          rc;                     /* LDAP API status */
+  int          version = 3;            /* LDAP version */
+  struct berval        bv = {0, ""};           /* SASL bind value */
+  LDAP         *TempBrowseLDAPHandle=NULL;
+                                       /* Temporary LDAP Handle */
 #  if defined(HAVE_LDAP_SSL) && defined (HAVE_MOZILLA_LDAP)
-  int          ldap_ssl = 0;                   /* LDAP SSL indicator */
-  int          ssl_err = 0;                    /* LDAP SSL error value */
+  int          ldap_ssl = 0;           /* LDAP SSL indicator */
+  int          ssl_err = 0;            /* LDAP SSL error value */
 #  endif /* defined(HAVE_LDAP_SSL) && defined (HAVE_MOZILLA_LDAP) */
 
+
 #  ifdef HAVE_OPENLDAP
 #    ifdef HAVE_LDAP_SSL
-
  /*
   * Set the certificate file to use for encrypted LDAP sessions...
   */
@@ -1122,7 +1119,7 @@ ldap_connect(void)
   if (BrowseLDAPCACertFile)
   {
     cupsdLogMessage(CUPSD_LOG_DEBUG,
-                   "cupsdStartBrowsing: Setting CA certificate file \"%s\"",
+                   "ldap_connect: Setting CA certificate file \"%s\"",
                     BrowseLDAPCACertFile);
 
     if ((rc = ldap_set_option(NULL, LDAP_OPT_X_TLS_CACERTFILE,
@@ -1131,8 +1128,8 @@ ldap_connect(void)
                       "Unable to set CA certificate file for LDAP "
                       "connections: %d - %s", rc, ldap_err2string(rc));
   }
-
 #    endif /* HAVE_LDAP_SSL */
+
  /*
   * Initialize OPENLDAP connection...
   * LDAP stuff currently only supports ldapi EXTERNAL SASL binds...
@@ -1153,26 +1150,27 @@ ldap_connect(void)
   * Split LDAP URI into its components...
   */
 
-  if (! BrowseLDAPServer)
+  if (!BrowseLDAPServer)
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                    "BrowseLDAPServer not configured! Disable LDAP browsing!");
-    BrowseLocalProtocols &= ~BROWSE_LDAP;
+    cupsdLogMessage(CUPSD_LOG_ERROR, "BrowseLDAPServer not configured!");
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Disabling LDAP browsing!");
+    BrowseLocalProtocols  &= ~BROWSE_LDAP;
     BrowseRemoteProtocols &= ~BROWSE_LDAP;
     return (NULL);
   }
 
-  sscanf(BrowseLDAPServer, "%10[^:]://%254[^:/]:%d", ldap_protocol, ldap_host, &ldap_port);
+  sscanf(BrowseLDAPServer, "%10[^:]://%254[^:/]:%d", ldap_protocol, ldap_host,
+         &ldap_port);
 
-  if (strcmp(ldap_protocol, "ldap") == 0) {
+  if (!strcmp(ldap_protocol, "ldap"))
     ldap_ssl = 0;
-  } else if (strcmp(ldap_protocol, "ldaps") == 0) {
+  else if (!strcmp(ldap_protocol, "ldaps"))
     ldap_ssl = 1;
-  } else {
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                    "unrecognised ldap protocol (%s)!", ldap_protocol);
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                    "Disable LDAP browsing!");
+  else
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Unrecognized LDAP protocol (%s)!",
+                    ldap_protocol);
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Disabling LDAP browsing!");
     BrowseLocalProtocols &= ~BROWSE_LDAP;
     BrowseRemoteProtocols &= ~BROWSE_LDAP;
     return (NULL);
@@ -1186,15 +1184,14 @@ ldap_connect(void)
       ldap_port = LDAP_PORT;
   }
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG,
-                  "LDAP Connection Details: PROT:%s HOST:%s PORT:%d",
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "ldap_connect: PROT:%s HOST:%s PORT:%d",
                   ldap_protocol, ldap_host, ldap_port);
 
  /*
   * Initialize LDAP connection...
   */
 
-  if (! ldap_ssl)
+  if (!ldap_ssl)
   {
     if ((TempBrowseLDAPHandle = ldap_init(ldap_host, ldap_port)) == NULL)
       rc = LDAP_OPERATIONS_ERROR;
@@ -1205,19 +1202,23 @@ ldap_connect(void)
   }
   else
   {
-
    /*
     * Initialize SSL LDAP connection...
     */
+
     if (BrowseLDAPCACertFile)
     {
       rc = ldapssl_client_init(BrowseLDAPCACertFile, (void *)NULL);
-      if (rc != LDAP_SUCCESS) {
+      if (rc != LDAP_SUCCESS)
+      {
         cupsdLogMessage(CUPSD_LOG_ERROR,
                         "Failed to initialize LDAP SSL client!");
         rc = LDAP_OPERATIONS_ERROR;
-      } else {
-        if ((TempBrowseLDAPHandle = ldapssl_init(ldap_host, ldap_port, 1)) == NULL)
+      }
+      else
+      {
+        if ((TempBrowseLDAPHandle = ldapssl_init(ldap_host, ldap_port,
+                                                 1)) == NULL)
           rc = LDAP_OPERATIONS_ERROR;
         else
           rc = LDAP_SUCCESS;
@@ -1237,7 +1238,7 @@ ldap_connect(void)
     */
 
     cupsdLogMessage(CUPSD_LOG_ERROR,
-                    "LDAP client libraries does not support TLS");
+                    "LDAP client libraries do not support SSL");
     rc = LDAP_OPERATIONS_ERROR;
 
 #    endif /* HAVE_LDAP_SSL */
@@ -1250,105 +1251,104 @@ ldap_connect(void)
 
   if (rc != LDAP_SUCCESS)
   {
-    if ((rc == LDAP_SERVER_DOWN) || (rc == LDAP_CONNECT_ERROR))
-    {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "Unable to initialize LDAP! Temporary disable LDAP browsing...");
-    }
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to initialize LDAP!");
+
+    if (rc == LDAP_SERVER_DOWN || rc == LDAP_CONNECT_ERROR)
+      cupsdLogMessage(CUPSD_LOG_ERROR, "Temporarily disabling LDAP browsing...");
     else
     {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "Unable to initialize LDAP! Disable LDAP browsing!");
-      BrowseLocalProtocols &= ~BROWSE_LDAP;
+      cupsdLogMessage(CUPSD_LOG_ERROR, "Disabling LDAP browsing!");
+
+      BrowseLocalProtocols  &= ~BROWSE_LDAP;
       BrowseRemoteProtocols &= ~BROWSE_LDAP;
     }
 
     ldap_disconnect(TempBrowseLDAPHandle);
-    TempBrowseLDAPHandle = NULL;
+
+    return (NULL);
   }
 
  /*
   * Upgrade LDAP version...
   */
 
-  else if (ldap_set_option(TempBrowseLDAPHandle, LDAP_OPT_PROTOCOL_VERSION,
+  if (ldap_set_option(TempBrowseLDAPHandle, LDAP_OPT_PROTOCOL_VERSION,
                            (const void *)&version) != LDAP_SUCCESS)
   {
-    cupsdLogMessage(CUPSD_LOG_ERROR,
-                   "Unable to set LDAP protocol version %d! Disable LDAP browsing!",
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to set LDAP protocol version %d!",
                    version);
-    BrowseLocalProtocols &= ~BROWSE_LDAP;
+    cupsdLogMessage(CUPSD_LOG_ERROR, "Disabling LDAP browsing!");
+
+    BrowseLocalProtocols  &= ~BROWSE_LDAP;
     BrowseRemoteProtocols &= ~BROWSE_LDAP;
     ldap_disconnect(TempBrowseLDAPHandle);
-    TempBrowseLDAPHandle = NULL;
+
+    return (NULL);
   }
-  else
-  {
 
  /*
-    * Register LDAP rebind procedure...
-    */
+ /*
+  * Register LDAP rebind procedure...
+  */
 
 #  ifdef HAVE_LDAP_REBIND_PROC
 #    if defined(LDAP_API_FEATURE_X_OPENLDAP) && (LDAP_API_VERSION > 2000)
 
-    rc = ldap_set_rebind_proc(TempBrowseLDAPHandle, &ldap_rebind_proc, (void *)NULL);
-    if ( rc != LDAP_SUCCESS )
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                      "Setting LDAP rebind function failed with status %d: %s",
-                      rc, ldap_err2string(rc));
+  rc = ldap_set_rebind_proc(TempBrowseLDAPHandle, &ldap_rebind_proc,
+                            (void *)NULL);
+  if (rc != LDAP_SUCCESS)
+    cupsdLogMessage(CUPSD_LOG_ERROR,
+                    "Setting LDAP rebind function failed with status %d: %s",
+                    rc, ldap_err2string(rc));
 
 #    else
 
-    ldap_set_rebind_proc(TempBrowseLDAPHandle, &ldap_rebind_proc, (void *)NULL);
+  ldap_set_rebind_proc(TempBrowseLDAPHandle, &ldap_rebind_proc, (void *)NULL);
 
 #    endif /* defined(LDAP_API_FEATURE_X_OPENLDAP) && (LDAP_API_VERSION > 2000) */
 #  endif /* HAVE_LDAP_REBIND_PROC */
 
  /*
-    * Start LDAP bind...
-    */
+ /*
+  * Start LDAP bind...
+  */
 
 #  if LDAP_API_VERSION > 3000
-    struct berval bval;
-    bval.bv_val = BrowseLDAPPassword;
-    bval.bv_len = (BrowseLDAPPassword == NULL) ? 0 : strlen(BrowseLDAPPassword);
+  struct berval bval;
+  bval.bv_val = BrowseLDAPPassword;
+  bval.bv_len = (BrowseLDAPPassword == NULL) ? 0 : strlen(BrowseLDAPPassword);
+
+  if (!BrowseLDAPServer || !strcasecmp(BrowseLDAPServer, "localhost"))
+    rc = ldap_sasl_bind_s(TempBrowseLDAPHandle, NULL, "EXTERNAL", &bv, NULL,
+                          NULL, NULL);
+  else
+    rc = ldap_sasl_bind_s(TempBrowseLDAPHandle, BrowseLDAPBindDN, LDAP_SASL_SIMPLE, &bval, NULL, NULL, NULL);
 
-    if (!BrowseLDAPServer || !strcasecmp(BrowseLDAPServer, "localhost"))
-      rc = ldap_sasl_bind_s(TempBrowseLDAPHandle, NULL, "EXTERNAL", &bv, NULL,
-                            NULL, NULL);
-    else
-      rc = ldap_sasl_bind_s(TempBrowseLDAPHandle, BrowseLDAPBindDN, LDAP_SASL_SIMPLE, &bval, NULL, NULL, NULL);
 #  else
-      rc = ldap_bind_s(TempBrowseLDAPHandle, BrowseLDAPBindDN,
-                       BrowseLDAPPassword, LDAP_AUTH_SIMPLE);
+    rc = ldap_bind_s(TempBrowseLDAPHandle, BrowseLDAPBindDN,
+                     BrowseLDAPPassword, LDAP_AUTH_SIMPLE);
 #  endif /* LDAP_API_VERSION > 3000 */
 
-    if (rc != LDAP_SUCCESS)
-    {
-      cupsdLogMessage(CUPSD_LOG_ERROR,
-                     "LDAP bind failed with error %d: %s",
-                      rc, ldap_err2string(rc));
+  if (rc != LDAP_SUCCESS)
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "LDAP bind failed with error %d: %s",
+                    rc, ldap_err2string(rc));
+
 #  if defined(HAVE_LDAP_SSL) && defined (HAVE_MOZILLA_LDAP)
-      if (ldap_ssl && ((rc == LDAP_SERVER_DOWN) || (rc == LDAP_CONNECT_ERROR)))
-      {
-        ssl_err = PORT_GetError();
-        if (ssl_err != 0)
-          cupsdLogMessage(CUPSD_LOG_ERROR,
-                          "LDAP SSL error %d: %s",
-                          ssl_err, ldapssl_err2string(ssl_err));
-      }
-#  endif /* defined(HAVE_LDAP_SSL) && defined (HAVE_MOZILLA_LDAP) */
-      ldap_disconnect(TempBrowseLDAPHandle);
-      TempBrowseLDAPHandle = NULL;
-    }
-    else
+    if (ldap_ssl && (rc == LDAP_SERVER_DOWN || rc == LDAP_CONNECT_ERROR))
     {
-      cupsdLogMessage(CUPSD_LOG_INFO,
-                     "LDAP connection established");
+      ssl_err = PORT_GetError();
+      if (ssl_err != 0)
+        cupsdLogMessage(CUPSD_LOG_ERROR, "LDAP SSL error %d: %s", ssl_err,
+                        ldapssl_err2string(ssl_err));
     }
+#  endif /* defined(HAVE_LDAP_SSL) && defined (HAVE_MOZILLA_LDAP) */
+
+    ldap_disconnect(TempBrowseLDAPHandle);
 
+    return (NULL);
   }
+
+  cupsdLogMessage(CUPSD_LOG_INFO, "LDAP connection established");
+
   return (TempBrowseLDAPHandle);
 }
 
@@ -1360,24 +1360,23 @@ ldap_connect(void)
 static void
 ldap_reconnect(void)
 {
-  LDAP         *TempBrowseLDAPHandle = NULL;   /* Temp Handle to LDAP server */
+  LDAP *TempBrowseLDAPHandle = NULL;   /* Temp Handle to LDAP server */
 
-  cupsdLogMessage(CUPSD_LOG_INFO,
-                  "Try LDAP reconnect...");
 
  /*
   * Get a new LDAP Handle and replace the global Handle
   * if the new connection was successful
   */
 
+  cupsdLogMessage(CUPSD_LOG_INFO, "Try LDAP reconnect...");
+
   TempBrowseLDAPHandle = ldap_connect();
 
   if (TempBrowseLDAPHandle != NULL)
   {
     if (BrowseLDAPHandle != NULL)
-    {
       ldap_disconnect(BrowseLDAPHandle);
-    }
+
     BrowseLDAPHandle = TempBrowseLDAPHandle;
   }
 }
@@ -1388,9 +1387,10 @@ ldap_reconnect(void)
  */
 
 static void
-ldap_disconnect(LDAP *ld)      /* I - LDAP handle */
+ldap_disconnect(LDAP *ld)              /* I - LDAP handle */
 {
-  int  rc;     /* return code */
+  int  rc;                             /* Return code */
+
 
  /*
   * Close LDAP handle...
@@ -1401,6 +1401,7 @@ ldap_disconnect(LDAP *ld) /* I - LDAP handle */
 #  else
   rc = ldap_unbind_s(ld);
 #  endif /* defined(HAVE_OPENLDAP) && LDAP_API_VERSION > 3000 */
+
   if (rc != LDAP_SUCCESS)
     cupsdLogMessage(CUPSD_LOG_ERROR,
                     "Unbind from LDAP server failed with status %d: %s",
@@ -3971,7 +3972,7 @@ send_cups_browse(cupsd_printer_t *p)      /* I - Printer to send */
  * 'ldap_search_rec()' - LDAP Search with reconnect
  */
 
-static int
+static int                             /* O - Return code */
 ldap_search_rec(LDAP        *ld,       /* I - LDAP handler */
                 char        *base,     /* I - Base dn */
                 int         scope,     /* I - LDAP search scope */
@@ -4040,11 +4041,9 @@ ldap_freeres(LDAPMessage *entry) /* I - LDAP handler */
 
   rc = ldap_msgfree(entry);
   if (rc == -1)
-    cupsdLogMessage(CUPSD_LOG_WARN,
-                    "Can't free LDAPMessage!");
+    cupsdLogMessage(CUPSD_LOG_WARN, "Can't free LDAPMessage!");
   else if (rc == 0)
-    cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                    "Freeing LDAPMessage was unnecessary");
+    cupsdLogMessage(CUPSD_LOG_DEBUG2, "Freeing LDAPMessage was unnecessary");
 }
 
 
@@ -4052,7 +4051,7 @@ ldap_freeres(LDAPMessage *entry)  /* I - LDAP handler */
  * 'ldap_getval_char()' - Get first LDAP value and convert to string
  */
 
-static int
+static int                             /* O - Return code */
 ldap_getval_firststring(
     LDAP          *ld,                 /* I - LDAP handler */
     LDAPMessage   *entry,              /* I - LDAP message or search result */
@@ -4082,7 +4081,6 @@ ldap_getval_firststring(
   }
   else
   {
-
    /*
     * Check size and copy value into our string...
     */
@@ -4104,7 +4102,7 @@ ldap_getval_firststring(
     ldap_value_free_len(bval);
   }
 #  else
-  char                 **value;        /* LDAP value */
+  char **value;                        /* LDAP value */
 
  /*
   * Get value from LDAPMessage...
@@ -4114,8 +4112,7 @@ ldap_getval_firststring(
   {
     rc = -1;
     dn = ldap_get_dn(ld, entry);
-    cupsdLogMessage(CUPSD_LOG_WARN,
-                    "Failed to get LDAP value %s for %s!",
+    cupsdLogMessage(CUPSD_LOG_WARN, "Failed to get LDAP value %s for %s!",
                     attr, dn);
     ldap_memfree(dn);
   }
@@ -4168,11 +4165,10 @@ send_ldap_ou(char *ou,                  /* I - Servername/ou to register */
   * Reconnect if LDAP Handle is invalid...
   */
 
-  if (! BrowseLDAPHandle)
+  if (!BrowseLDAPHandle)
   {
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
-                    "send_ldap_ou: LDAP Handle is invalid. Try "
-                   "reconnecting...");
+                    "send_ldap_ou: LDAP Handle is invalid. Try reconnecting...");
     ldap_reconnect();
     return;
   }
@@ -4630,6 +4626,10 @@ ldap_dereg_printer(cupsd_printer_t *p)   /* I - Printer to deregister */
 }
 
 
+/*
+ * 'ldap_dereg_ou()' - Remove the organizational unit.
+ */
+
 static void
 ldap_dereg_ou(char *ou,                        /* I - Organizational unit (servername) */
               char *basedn)            /* I - Dase dn */
@@ -4688,7 +4688,6 @@ ldap_dereg_ou(char *ou,                   /* I - Organizational unit (servername) */
                         "LDAP delete for %s failed with status %d: %s",
                         ou, rc, ldap_err2string(rc));
     }
-
   }
 }
 #endif /* HAVE_LDAP */
index 12c097374f3aafc64d2dec14a08d62b28cec29f0..f95417e64ff4e600238168cae9f92eb496a8f935 100644 (file)
@@ -1706,8 +1706,6 @@ add_job(cupsd_client_t  *con,             /* I - Client connection */
                               "job-media-sheets-completed", 0);
   ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_URI, "job-printer-uri", NULL,
                printer->uri);
-  ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL,
-               title);
 
   if ((attr = ippFindAttribute(job->attrs, "job-k-octets",
                                IPP_TAG_INTEGER)) != NULL)
@@ -3199,7 +3197,7 @@ apple_register_profiles(
       num_profiles ++;
     }
 
-  
+
  /*
   * If we have profiles, add them...
   */
@@ -3245,7 +3243,7 @@ apple_register_profiles(
        snprintf(q_keyword, sizeof(q_keyword), "Default%s", attr->value);
        q2_attr = ppdFindAttr(ppd, q_keyword, NULL);
       }
-      else 
+      else
        q2_attr = ppdFindAttr(ppd, "DefaultMediaType", NULL);
 
       if (q2_attr && q2_attr->value && q2_attr->value[0])
@@ -3259,7 +3257,7 @@ apple_register_profiles(
        snprintf(q_keyword, sizeof(q_keyword), "Default%s", attr->value);
        q3_attr = ppdFindAttr(ppd, q_keyword, NULL);
       }
-      else 
+      else
        q3_attr = ppdFindAttr(ppd, "DefaultResolution", NULL);
 
       if (q3_attr && q3_attr->value && q3_attr->value[0])
@@ -3428,7 +3426,7 @@ apple_register_profiles(
     attr = ppdFindAttr(ppd, "DefaultColorSpace", NULL);
 
     num_profiles = (attr && ppd->colorspace == PPD_CS_GRAY) ? 1 : 2;
-      
+
     if ((profiles = calloc(num_profiles, sizeof(CMDeviceProfileArray))) == NULL)
     {
       cupsdLogMessage(CUPSD_LOG_ERROR,
@@ -4426,7 +4424,7 @@ check_quotas(cupsd_client_t  *con,        /* I - Client connection */
     if (q->page_count == -4) /* special case: unlimited user */
     {
       cupsdLogMessage(CUPSD_LOG_INFO,
-                      "User \"%s\" request approved for printer %s (%s): " 
+                      "User \"%s\" request approved for printer %s (%s): "
                      "unlimited quota.",
                      username, p->name, p->info);
       q->page_count = 0; /* allow user to print */
@@ -6746,6 +6744,7 @@ get_job_attrs(cupsd_client_t  *con,       /* I - Client connection */
   ipp_attribute_t *attr;               /* Current attribute */
   int          jobid;                  /* Job ID */
   cupsd_job_t  *job;                   /* Current job */
+  cupsd_printer_t *printer;            /* Current printer */
   char         scheme[HTTP_MAX_URI],   /* Method portion of URI */
                username[HTTP_MAX_URI], /* Username portion of URI */
                host[HTTP_MAX_URI],     /* Host portion of URI */
@@ -6820,7 +6819,19 @@ get_job_attrs(cupsd_client_t  *con,      /* I - Client connection */
   * Check policy...
   */
 
-  if ((status = cupsdCheckPolicy(DefaultPolicyPtr, con, NULL)) != HTTP_OK)
+  if ((printer = job->printer) == NULL)
+    printer = cupsdFindDest(job->dest);
+
+  if (printer)
+  {
+    if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
+                                   NULL)) != HTTP_OK)
+    {
+      send_http_error(con, status, printer);
+      return;
+    }
+  }
+  else if ((status = cupsdCheckPolicy(DefaultPolicyPtr, con, NULL)) != HTTP_OK)
   {
     send_http_error(con, status, NULL);
     return;
index 8624b4fe60de8f2396226c54ef739bac14c423b7..b3385670735120fec2c8c59eade295892b583188 100644 (file)
@@ -168,7 +168,7 @@ static mime_filter_t        gziptoany_filter =
 static int     compare_active_jobs(void *first, void *second, void *data);
 static int     compare_jobs(void *first, void *second, void *data);
 static void    dump_job_history(cupsd_job_t *job);
-static void    finalize_job(cupsd_job_t *job);
+static void    finalize_job(cupsd_job_t *job, int set_job_state);
 static void    free_job_history(cupsd_job_t *job);
 static char    *get_options(cupsd_job_t *job, int banner_page, char *copies,
                             size_t copies_size, char *title,
@@ -433,11 +433,11 @@ cupsdCleanJobs(void)
   cupsd_job_t  *job;                   /* Current job */
 
 
-  if (MaxJobs <= 0)
+  if (MaxJobs <= 0 && JobHistory)
     return;
 
   for (job = (cupsd_job_t *)cupsArrayFirst(Jobs);
-       job && cupsArrayCount(Jobs) >= MaxJobs;
+       job && (cupsArrayCount(Jobs) >= MaxJobs || !JobHistory);
        job = (cupsd_job_t *)cupsArrayNext(Jobs))
     if (job->state_value >= IPP_JOB_CANCELED && !job->printer)
       cupsdDeleteJob(job, CUPSD_JOB_PURGE);
@@ -1233,7 +1233,7 @@ cupsdDeleteJob(cupsd_job_t       *job,    /* I - Job */
                cupsd_jobaction_t action)/* I - Action */
 {
   if (job->printer)
-    finalize_job(job);
+    finalize_job(job, 1);
 
   if (action == CUPSD_JOB_PURGE)
   {
@@ -1657,7 +1657,30 @@ cupsdLoadJob(cupsd_job_t *job)           /* I - Job */
           cupsdLogMessage(CUPSD_LOG_ERROR,
                          "[Job %d] Ran out of memory for job file types!",
                          job->id);
-         return (1);
+
+         ippDelete(job->attrs);
+         job->attrs = NULL;
+
+         if (compressions)
+           free(compressions);
+
+         if (filetypes)
+           free(filetypes);
+
+         if (job->compressions)
+         {
+           free(job->compressions);
+           job->compressions = NULL;
+         }
+
+         if (job->filetypes)
+         {
+           free(job->filetypes);
+           job->filetypes = NULL;
+         }
+
+         job->num_files = 0;
+         return (0);
        }
 
         job->compressions = compressions;
@@ -1725,6 +1748,21 @@ cupsdLoadJob(cupsd_job_t *job)           /* I - Job */
 
   ippDelete(job->attrs);
   job->attrs = NULL;
+
+  if (job->compressions)
+  {
+    free(job->compressions);
+    job->compressions = NULL;
+  }
+
+  if (job->filetypes)
+  {
+    free(job->filetypes);
+    job->filetypes = NULL;
+  }
+
+  job->num_files = 0;
+
   unlink(jobfile);
 
   return (0);
@@ -2196,7 +2234,7 @@ cupsdSetJobState(
   */
 
   if (oldstate == IPP_JOB_PROCESSING)
-    stop_job(job, action != CUPSD_JOB_DEFAULT);
+    stop_job(job, action);
 
  /*
   * Set the new job state...
@@ -2396,8 +2434,6 @@ cupsdSetJobState(
          job->dirty = 1;
          cupsdMarkDirty(CUPSD_DIRTY_JOBS);
        }
-       else if (!job->printer)
-         cupsdDeleteJob(job, CUPSD_JOB_PURGE);
        break;
   }
 
@@ -2405,8 +2441,8 @@ cupsdSetJobState(
   * Finalize the job immediately if we forced things...
   */
 
-  if (action == CUPSD_JOB_FORCE)
-    finalize_job(job);
+  if (action >= CUPSD_JOB_FORCE)
+    finalize_job(job, 0);
 
  /*
   * Update the server "busy" state...
@@ -2641,7 +2677,8 @@ free_job_history(cupsd_job_t *job)        /* I - Job */
  */
 
 static void
-finalize_job(cupsd_job_t *job)         /* I - Job */
+finalize_job(cupsd_job_t *job,         /* I - Job */
+             int         set_job_state)        /* I - 1 = set the job state */
 {
   ipp_pstate_t         printer_state;  /* New printer state value */
   ipp_jstate_t         job_state;      /* New job state value */
@@ -2926,7 +2963,9 @@ finalize_job(cupsd_job_t *job)            /* I - Job */
   * Update the printer and job state.
   */
 
-  cupsdSetJobState(job, job_state, CUPSD_JOB_DEFAULT, "%s", message);
+  if (job_state != job->state_value)
+    cupsdSetJobState(job, job_state, CUPSD_JOB_DEFAULT, "%s", message);
+
   cupsdSetPrinterState(job->printer, printer_state,
                        printer_state == IPP_PRINTER_STOPPED);
   update_job_attrs(job, 0);
@@ -3894,15 +3933,34 @@ stop_job(cupsd_job_t       *job,        /* I - Job */
 
   if (action == CUPSD_JOB_DEFAULT && !job->kill_time)
     job->kill_time = time(NULL) + JobKillDelay;
-  else if (action == CUPSD_JOB_FORCE)
+  else if (action >= CUPSD_JOB_FORCE)
     job->kill_time = 0;
 
   for (i = 0; job->filters[i]; i ++)
     if (job->filters[i] > 0)
-      cupsdEndProcess(job->filters[i], action == CUPSD_JOB_FORCE);
+    {
+      cupsdEndProcess(job->filters[i], action >= CUPSD_JOB_FORCE);
+
+      if (action >= CUPSD_JOB_FORCE)
+        job->filters[i] = -job->filters[i];
+    }
 
   if (job->backend > 0)
-    cupsdEndProcess(job->backend, action == CUPSD_JOB_FORCE);
+  {
+    cupsdEndProcess(job->backend, action >= CUPSD_JOB_FORCE);
+
+    if (action >= CUPSD_JOB_FORCE)
+      job->backend = -job->backend;
+  }
+
+  if (action >= CUPSD_JOB_FORCE)
+  {
+   /*
+    * Clear job status...
+    */
+
+    job->status = 0;
+  }
 }
 
 
@@ -4277,7 +4335,7 @@ update_job(cupsd_job_t *job)              /* I - Job to check */
     * Handle the end of job stuff...
     */
 
-    finalize_job(job);
+    finalize_job(job, 1);
 
    /*
     * Check for new jobs...
@@ -4331,7 +4389,7 @@ update_job_attrs(cupsd_job_t *job,        /* I - Job to update */
   else if (job->printer->state_message[0] && do_message)
     cupsdSetString(&(job->printer_message->values[0].string.text),
                   job->printer->state_message);
-  
+
  /*
   * ... and the printer-state-reasons value...
   */
index f4bddc4f5e655ff2f51d065e9cf538cabddf0be9..28ae983f01d6fb699acaf098306b384224bbadcf 100644 (file)
@@ -379,7 +379,7 @@ main(int  argc,                             /* I - Number of command-line args */
     * parent's file descriptors to be blocking.  This is a workaround for a
     * limitation of userland libpthread on OpenBSD.
     */
-   
+
     _thread_sys_closefrom(0);
 #endif /* __OpenBSD__ */
 
@@ -807,8 +807,8 @@ main(int  argc,                             /* I - Number of command-line args */
 
     if (timeout == 86400 && Launchd && LaunchdTimeout && !NumPolled &&
         !cupsArrayCount(ActiveJobs) &&
-       (!Browsing || 
-        (!BrowseRemoteProtocols && 
+       (!Browsing ||
+        (!BrowseRemoteProtocols &&
          (!NumBrowsers || !BrowseLocalProtocols ||
           cupsArrayCount(Printers) == 0))))
     {
@@ -1036,6 +1036,7 @@ main(int  argc,                           /* I - Number of command-line args */
     if ((current_time - senddoc_time) >= 10)
     {
       cupsdCheckJobs();
+      cupsdCleanJobs();
       senddoc_time = current_time;
     }
 
@@ -1194,8 +1195,8 @@ main(int  argc,                           /* I - Number of command-line args */
 #endif /* HAVE_GSSAPI */
 
 #if defined(__APPLE__) && defined(HAVE_DLFCN_H)
- /* 
-  * Unload Print Service quota enforcement library (X Server only) 
+ /*
+  * Unload Print Service quota enforcement library (X Server only)
   */
 
   PSQUpdateQuotaProc = NULL;
@@ -1552,13 +1553,13 @@ launchd_checkin(void)
 
        if (lis)
        {
-         cupsdLogMessage(CUPSD_LOG_DEBUG, 
+         cupsdLogMessage(CUPSD_LOG_DEBUG,
                  "launchd_checkin: Matched existing listener %s with fd %d...",
                  httpAddrString(&(lis->address), s, sizeof(s)), fd);
        }
        else
        {
-         cupsdLogMessage(CUPSD_LOG_DEBUG, 
+         cupsdLogMessage(CUPSD_LOG_DEBUG,
                  "launchd_checkin: Adding new listener %s with fd %d...",
                  httpAddrString(&addr, s, sizeof(s)), fd);
 
@@ -1612,12 +1613,12 @@ launchd_checkout(void)
 
  /*
   * Create or remove the launchd KeepAlive file based on whether
-  * there are active jobs, polling, browsing for remote printers or 
+  * there are active jobs, polling, browsing for remote printers or
   * shared printers to advertise...
   */
 
-  if ((cupsArrayCount(ActiveJobs) || NumPolled || 
-       (Browsing && 
+  if ((cupsArrayCount(ActiveJobs) || NumPolled ||
+       (Browsing &&
        (BrowseRemoteProtocols ||
         (BrowseLocalProtocols && NumBrowsers && cupsArrayCount(Printers))))))
   {
index e1451207b34f3a3fa26dd1eb15cfe25025c8b088..32067ef1da998f1a2842a5d5b0e71ada059da855 100644 (file)
@@ -12,8 +12,6 @@
                <string>-o</string>
                <string>document-format=application/octet-stream</string>
        </array>
-       <key>SHAuthorizationRight</key>
-       <string>system.preferences</string>
        <key>Sockets</key>
        <dict>
                <key>Listeners</key>
index 2b9a7df9d55866cf7f8e593cb4a12138b65de619..97c4208e1daa04b8db28e0f3767683d6c1720d39 100644 (file)
@@ -23,8 +23,6 @@
        </array>
        <key>ServiceIPC</key>
        <true/>
-       <key>SHAuthorizationRight</key>
-       <string>system.preferences</string>
        <key>Sockets</key>
        <dict>
                <key>Listeners</key>
index d026f0ab0dd5bcd3d66736dd28addde0eca9c6b3..0f8d96a2b416b16fc7dfff1e1da461e60b4c116b 100644 (file)
@@ -185,7 +185,9 @@ cupsdEndProcess(int pid,            /* I - Process ID */
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdEndProcess(pid=%d, force=%d)", pid,
                   force);
 
-  if (force)
+  if (!pid)
+    return (0);
+  else if (force)
     return (kill(pid, SIGKILL));
   else
     return (kill(pid, SIGTERM));
@@ -295,8 +297,9 @@ cupsdStartProcess(
 
     return (0);
   }
-  else if ((commandinfo.st_mode & (S_ISUID | S_IWGRP | S_IWOTH)) ||
-           (!RunUser && commandinfo.st_uid))
+  else if (!RunUser &&
+           ((commandinfo.st_mode & (S_ISUID | S_IWGRP | S_IWOTH)) ||
+            commandinfo.st_uid))
   {
     *pid = 0;
 
@@ -505,6 +508,7 @@ cupsdStartProcess(
 #ifdef HAVE_SIGSET
     sigset(SIGTERM, SIG_DFL);
     sigset(SIGCHLD, SIG_DFL);
+    sigset(SIGPIPE, SIG_DFL);
 #elif defined(HAVE_SIGACTION)
     memset(&action, 0, sizeof(action));
 
@@ -513,9 +517,11 @@ cupsdStartProcess(
 
     sigaction(SIGTERM, &action, NULL);
     sigaction(SIGCHLD, &action, NULL);
+    sigaction(SIGPIPE, &action, NULL);
 #else
     signal(SIGTERM, SIG_DFL);
     signal(SIGCHLD, SIG_DFL);
+    signal(SIGPIPE, SIG_DFL);
 #endif /* HAVE_SIGSET */
 
     cupsdReleaseSignals();
index 8896388cce2df372e9e6e42d8fc3fe23b509d7fa..96f12ab3a3c00dda2e5291846e0857f5e0f82ea8 100644 (file)
@@ -241,11 +241,11 @@ static fd_set             cupsd_global_input,
 
 static int             compare_fds(_cupsd_fd_t *a, _cupsd_fd_t *b);
 static _cupsd_fd_t     *find_fd(int fd);
-#define                        release_fd(f) { \
+#define                release_fd(f) { \
                          (f)->use --; \
                          if (!(f)->use) free((f));\
                        }
-#define                        retain_fd(f) (f)->use++
+#define                retain_fd(f) (f)->use++
 
 
 /*
@@ -454,7 +454,7 @@ cupsdDoSelect(long timeout)         /* I - Timeout in seconds */
     if (fdptr->read_cb && event->filter == EVFILT_READ)
       (*(fdptr->read_cb))(fdptr->data);
 
-    if (fdptr->write_cb && event->filter == EVFILT_WRITE)
+    if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE)
       (*(fdptr->write_cb))(fdptr->data);
 
     release_fd(fdptr);
@@ -499,7 +499,8 @@ cupsdDoSelect(long timeout)         /* I - Timeout in seconds */
        if (fdptr->read_cb && (event->events & (EPOLLIN | EPOLLERR | EPOLLHUP)))
          (*(fdptr->read_cb))(fdptr->data);
 
-       if (fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
+       if (fdptr->use > 1 && fdptr->write_cb &&
+           (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
          (*(fdptr->write_cb))(fdptr->data);
 
        release_fd(fdptr);
@@ -590,7 +591,8 @@ cupsdDoSelect(long timeout)         /* I - Timeout in seconds */
       if (fdptr->read_cb && (pfd->revents & (POLLIN | POLLERR | POLLHUP)))
         (*(fdptr->read_cb))(fdptr->data);
 
-      if (fdptr->write_cb && (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
+      if (fdptr->use > 1 && fdptr->write_cb &&
+          (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
         (*(fdptr->write_cb))(fdptr->data);
 
       release_fd(fdptr);
@@ -645,7 +647,8 @@ cupsdDoSelect(long timeout)         /* I - Timeout in seconds */
       if (fdptr->read_cb && FD_ISSET(fdptr->fd, &cupsd_current_input))
         (*(fdptr->read_cb))(fdptr->data);
 
-      if (fdptr->write_cb && FD_ISSET(fdptr->fd, &cupsd_current_output))
+      if (fdptr->use > 1 && fdptr->write_cb &&
+          FD_ISSET(fdptr->fd, &cupsd_current_output))
         (*(fdptr->write_cb))(fdptr->data);
 
       release_fd(fdptr);
index 0a7ae4b3b6ca8eec34113d30f3434601d5db1636..79b192d76966811e49952569a3e80309ec749730 100644 (file)
@@ -69,7 +69,8 @@ enum
   WARN_TRANSLATIONS = 16,
   WARN_DUPLEX = 32,
   WARN_SIZES = 64,
-  WARN_ALL = 127
+  WARN_FILENAME = 128,
+  WARN_ALL = 255
 };
 
 
@@ -369,6 +370,8 @@ main(int  argc,                             /* I - Number of command-line args */
 
               if (!strcmp(argv[i], "none"))
                ignore = WARN_NONE;
+             else if (!strcmp(argv[i], "filename"))
+               ignore |= WARN_FILENAME;
              else if (!strcmp(argv[i], "filters"))
                ignore |= WARN_FILTERS;
              else if (!strcmp(argv[i], "profiles"))
@@ -999,7 +1002,7 @@ main(int  argc,                            /* I - Number of command-line args */
        if (verbose > 0)
           _cupsLangPuts(stdout, _("        PASS    PCFileName\n"));
       }
-      else
+      else if (!(ignore & WARN_FILENAME))
       {
        if (verbose >= 0)
        {
@@ -1523,12 +1526,23 @@ main(int  argc,                         /* I - Number of command-line args */
        * a warning and not a hard error...
        */
 
-       if (ppd->pcfilename && strlen(ppd->pcfilename) > 12)
-       {
-         _cupsLangPuts(stdout,
-                       _("        WARN    PCFileName longer than 8.3 in "
-                         "violation of PPD spec.\n"
-                         "                REF: Pages 61-62, section 5.3.\n"));
+        if (!(ignore & WARN_FILENAME) && ppd->pcfilename)
+        {
+         if (strlen(ppd->pcfilename) > 12)
+         {
+           _cupsLangPuts(stdout,
+                         _("        WARN    PCFileName longer than 8.3 in "
+                           "violation of PPD spec.\n"
+                           "                REF: Pages 61-62, section "
+                           "5.3.\n"));
+         }
+
+         if (!strcasecmp(ppd->pcfilename, "unused.ppd"))
+           _cupsLangPuts(stdout,
+                         _("        WARN    PCFileName should contain a "
+                           "unique filename.\n"
+                           "                REF: Pages 61-62, section "
+                           "5.3.\n"));
         }
 
         if (!ppd->shortnickname && ppdversion < 43)
@@ -3653,8 +3667,8 @@ usage(void)
                  "\n"
                  "Options:\n"
                  "\n"
-                 "    -I {filters,profiles}\n"
-                 "                         Ignore missing files\n"
+                 "    -I {filename,filters,none,profiles}\n"
+                 "                         Ignore specific warnings\n"
                  "    -R root-directory    Set alternate root\n"
                  "    -W {all,none,constraints,defaults,duplex,filters,"
                  "profiles,sizes,translations}\n"
index 6346a86a8d9e0aca7c466962e44b59937e91d67d..7f375078a7a24f18bacc8df66b50b828a57ae906 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 {?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
 {?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
 
index c1dc25b989aed38395f6006296c514586a5c586a..bbf9db7cd55eb8993c1c1ad8ed0cb77c56734d45 100644 (file)
@@ -20,7 +20,7 @@
 <H2 CLASS="title">Jobs</H2>
 
 <P>
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Manage Jobs"></FORM>
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Manage Jobs"></FORM>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
index b7d92723faf2468c76cbfdcd9a78f5a3ecd4845e..a4877ca637e3e3e543e3c4f9dbc8d9b45fd5366e 100644 (file)
@@ -2,21 +2,18 @@
 
 <H2 CLASS="title">{op=modify-printer?Modify {printer_name}:Add Printer}</H2>
 
-{CUPS_GET_DEVICES_DONE?:<P><IMG SRC="/images/wait.gif" WIDTH="16" HEIGHT="16" ALIGN="ABSMIDDLE"
-ALT="Busy Indicator"> Looking for printers...</P>}
-
-<FORM METHOD="POST" ACTION="/admin">
+{CUPS_GET_DEVICES_DONE?<FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 {printer_name?<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">:}
 
 <TABLE>
 {op=add-printer?:<TR>
-<TH CLASS="label">Current Connection:</TH>
+<TH CLASS="label">Current Connection\:</TH>
 <TD><INPUT TYPE="RADIO" NAME="DEVICE_URI" VALUE="{current_device_uri}" CHECKED>
 {current_device_uri}</TD>
 </TR>}
 <TR>
-<TH CLASS="label">Local Printers:</TH>
+<TH CLASS="label">Local Printers\:</TH>
 <TD>
 {[device_uri]{device_class!network?<INPUT TYPE="RADIO" NAME="DEVICE_URI"
 VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
@@ -25,7 +22,7 @@ VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
 </TD>
 </TR>
 <TR>
-<TH CLASS="label">Discovered Network Printers:</TH>
+<TH CLASS="label">Discovered Network Printers\:</TH>
 <TD>
 {[device_uri]{device_class=network?{device_uri~[a-z]+://?<INPUT TYPE="RADIO" NAME="DEVICE_URI"
 VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
@@ -35,7 +32,7 @@ VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
 </TR>
 <TR>
 <TR>
-<TH CLASS="label">Other Network Printers:</TH>
+<TH CLASS="label">Other Network Printers\:</TH>
 <TD>
 {[device_uri]{device_class=network?{device_uri~[a-z]+://?:<INPUT TYPE="RADIO" NAME="DEVICE_URI"
 VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
@@ -49,5 +46,7 @@ VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
 </TR>
 </TABLE>
 
-</FORM>
-</DIV>
\ No newline at end of file
+</FORM>:<P><IMG SRC="/images/wait.gif" WIDTH="16" HEIGHT="16" ALIGN="ABSMIDDLE"
+ALT="Busy Indicator"> Looking for printers...</P>}
+
+</DIV>
index 87dae9f04f8283edbc41c90eb7b75d3f88c24b6d..42d18fe0e7716f0b9a8fef2ffda5b5b2abeb58a9 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 {?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
 {?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
 
index 508733b22136c7142cc218ce1a672b19d0c39007..a3445479cf7c109542bdf1f38e39cc910fba80a2 100644 (file)
@@ -20,7 +20,7 @@
 <H2 CLASS="title">Druckauftr&auml;ge</H2>
 
 <P>
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Auftr&auml;ge verwalten"></FORM>
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Auftr&auml;ge verwalten"></FORM>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
index bb25035d10c94bb5d4b78acb0be621adcc30f0cc..20cd6db2d562baa87fb19156f4e2674569ecbe6d 100644 (file)
@@ -2,8 +2,8 @@
 
 <H2 CLASS="title">Klasse {printer_name} l&ouml;schen</H2>
 
-<P><B>Warning:</B> Sind Sie sicher Sie wollen die Klasse
-{printer_name} l&ouml;schen?</P>
+<P><B>Warnung:</B> Sind Sie sicher, dass Sie die Klasse
+{printer_name} l&ouml;schen wollen?</P>
 
 <P ALIGN="CENTER"><FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="op" VALUE="delete-class"><INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}"><INPUT TYPE="SUBMIT" NAME="confirm" VALUE="Klasse l&ouml;schen"></FORM></P>
 
index 23fc4fc0db5e5eca9f922beea3edb7a66d9cf30d..a2d68a58a7de750d78562010732d6baa2a2c1290 100644 (file)
@@ -15,7 +15,7 @@ AUTOSAVE="org.cups.help" RESULTS="20">
 <DIV CLASS="sidebar"><TABLE CLASS="inset" SUMMARY="Inhalt">
 <TR><TD>
 
-<H3 CLASS="title">On-Line Hilfe Dokumente</H3>
+<H3 CLASS="title">Online Hilfe Dokumente</H3>
 
 <P CLASS="l0"><A HREF="/help/{QUERY??QUERY={QUERY}:}">Alle Dokumente</A></P>
 <HR>
@@ -46,6 +46,6 @@ Erfahrene Benutzer sollten "<a href="/help/whatsnew.html">Was ist neu in CUPS
 1.4</a>" lesen.</P>
 
 <P>Die <A HREF="http://www.cups.org/">CUPS Webseite</A> bietet
-ebenfalls viele Angebote inklusive Benutzer Diskussionsforen,
+ebenfalls viele Angebote inklusive Diskussionsforen f&uuml; Benutzer,
 Antworten auf h&auml;ufig gestellte Fragen, und ein Formular für
 Fehlerberichte und W&uuml;nsche.</P>}
index 38885f9957c10d1e9dde64207736f06210170ba5..3a524bb58ff3752f05abf642d99a92954b2bb863 100644 (file)
@@ -13,7 +13,7 @@
 <TD>{job_media_sheets_completed=0?Unbekannt:{?job_media_sheets_completed}}&nbsp;</TD>
 <TD>{job_state=3?unerledigt seit<BR>{time_at_creation}:{job_state=4?angehalten seit<BR>{time_at_creation}:
 {job_state=5?verarbeitet seit<BR>{time_at_processing}:{job_state=6?gestoppt:
-{job_state=7?getl&ouml;scht am<BR>{time_at_completed}:{job_state=8?abgebrochen:beendet am<BR>{time_at_completed}}}}}}}&nbsp;{job_printer_state_message?<BR>
+{job_state=7?gel&ouml;scht am<BR>{time_at_completed}:{job_state=8?abgebrochen:beendet am<BR>{time_at_completed}}}}}}}&nbsp;{job_printer_state_message?<BR>
 <EM>"{job_printer_state_message}"</EM>:}</TD>
 <TD>
 {job_preserved>0?{job_state>5?
index 293d75001443647dffb331855f3a0cea68edbc16..a44da2bea4434295d59f3242c38413e166241636 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 
 <TABLE>
index 8c59cdad671fad15172513b9740e03b4106b30c5..eac3c0de07dd902764da107b0955463adae8a463 100644 (file)
@@ -1,7 +1,7 @@
 <P><B>Error:</B> The following options are conflicting:</P>
 
 <UL>
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
 }</UL>
 
 <P>Bitte &auml;ndern sie eine oder mehrere Einstellungen um die Konflikte zu l&ouml;sen.</P>
index 5290c85e526eb73ae5f8d9c423634c326bc87a9b..3bbe1fb344bff5a2b665b22eb93535618fa98243 100644 (file)
@@ -2,8 +2,8 @@
 
 <H2 CLASS="title">Drucker {printer_name} l&ouml;schen</H2>
 
-<P><B>Warnung:</B> Sind sie sicher sie wollen den Drucker
-{printer_name} l&ouml;schen?</P>
+<P><B>Warnung:</B> Sind Sie sicher, dass Sie den Drucker
+{printer_name} l&ouml;schen wollen?</P>
 
 <P ALIGN="CENTER"><FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="delete-printer"><INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}"><INPUT TYPE="SUBMIT" NAME="confirm" VALUE="Drucker l&ouml;schen"></FORM></P>
 
index 330c070beb5a9755cfe182acbe0fab3d19dea17d..e3e1ebc4a53386b1956fde48c2f904f58a08c7c8 100644 (file)
@@ -1,7 +1,7 @@
 <DIV CLASS="indent">
 
 <H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>
-({printer_state=3?Frei:{printer_state=4?Besch&auml;ftig:Angehalten}},
+({printer_state=3?Frei:{printer_state=4?Besch&auml;ftigt:Angehalten}},
 {printer_is_accepting_jobs=0?Auftr&auml;ge werden ablehnt:Auftr&auml;ge werden akzeptiert},
 {server_is_sharing_printers=0?Nicht:{printer_is_shared=0?Nicht:}} freigegeben{default_name={printer_name}?, Standarddrucker:})</H2>
 
index bff616dc5624221855d7883298569457ddbbc6e8..9e65a93b93bf2a335b952e00272a1cbebdd821cb 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 {?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
 {?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
 
index a16eb4ed2a1075b80c9626afc9b0a9026c012d38..81a92ba18d4b35b1dd347624014fd99658284585 100644 (file)
@@ -20,7 +20,7 @@
 <H2 CLASS="title">Trabajos</H2>
 
 <P>
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Administrar trabajos"></FORM>
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Administrar trabajos"></FORM>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
index 4c6ac3103f96f7abd1c1202edb17aae3dd7b5103..944a087bcc72e13268e96d8f748cb7321cf54f85 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 
 <TABLE>
index 6db0267aed2ef51035e38989de50c5f3e567d63f..adeb4363e6b361f07f2330f6bd7687cbcd138fff 100644 (file)
@@ -1,7 +1,7 @@
 <P><B>Error:</B> Las siguientes opciones est&aacute;n en conflicto:</P>
 
 <UL>
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
 }</UL>
 
 <P>Cambie una o m&aacute;s de las opciones para resolver el problema.</P>
index 1cab894ef48a1e711b1dd1e081fafb753a31bbd8..853d052ffb5055e666b96d50bfe854741ecd3f3b 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 {?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
 {?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
 
index 65842a7b0a4f3caf2890e857e86b4e42477b121f..5f13fe21e905fefb047265569a43cb2d8fefa2f3 100644 (file)
@@ -20,7 +20,7 @@
 <H2 CLASS="title">Lanak</H2>
 
 <P>
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Kudeatu lanak"></FORM>
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Kudeatu lanak"></FORM>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
index 989baf73b5c4973cf1a9b59c417df001fb4e3718..23f308b66e1aabb8743b1b5cd7d48db027b7ed97 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 
 <TABLE>
index f4cf7f0f26c8358c079d2aab110a34a2dac0de5b..617858ccbbc6d2272139d414a31c64883d142b0f 100644 (file)
@@ -1,7 +1,7 @@
 <P><B>Errorea:</B> honako aukerak gatazkan daude:</P>
 
 <UL>
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
 }</UL>
 
 <P>Aldatu aukera bat edo gehiago gatazkak ebazteko.</P>
diff --git a/templates/id/add-class.tmpl b/templates/id/add-class.tmpl
new file mode 100644 (file)
index 0000000..b64af5d
--- /dev/null
@@ -0,0 +1,39 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Tambah Kelas</H2>
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nama:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Karakter apa saja yang dapat dicetak, kecuali "/", "#", dan spasi)</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Deskripsi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Deskripsi yang mudah dibaca, seperti "HP LaserJet dengan Duplexer")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Lokasi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Lokasi yang mudah dibaca, seperti "Lab 1")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Anggota:</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Tambah Kelas"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/add-printer.tmpl b/templates/id/add-printer.tmpl
new file mode 100644 (file)
index 0000000..9252956
--- /dev/null
@@ -0,0 +1,42 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Add Printer</H2>
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
+{?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nama:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127" VALUE="{?template_name}"><BR>
+<SMALL>(Karakter apa saja yang dapat dicetak, kecuali "/", "#", dan spasi)</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Deskripsi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127" VALUE="{?PRINTER_INFO}"><BR>
+<SMALL>(Deskripsi yang mudah dibaca, seperti "HP LaserJet dengan Duplexer")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Location:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127" VALUE="{?PRINTER_LOCATION}"><BR>
+<SMALL>(Lokasi yang mudah dibaca, seperti "Lab 1")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Koneksi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">{device_uri}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Berbagi:</TH>
+<TD><INPUT TYPE="CHECKBOX" NAME="PRINTER_IS_SHARED" {PRINTER_IS_SHARED=1?CHECKED:}>
+Berbagi Pencetak Ini</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Lanjut"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/add-rss-subscription.tmpl b/templates/id/add-rss-subscription.tmpl
new file mode 100644 (file)
index 0000000..ac9e3d4
--- /dev/null
@@ -0,0 +1,43 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription">
+
+<H2 CLASS="title">Tambah Subskripsi RSS</H2>
+
+<TABLE SUMMARY="Add RSS Subscription form">
+<TR>
+<TH CLASS="label">Nama:</TH>
+<TD COLSPAN="5"><INPUT TYPE="TEXT" NAME="SUBSCRIPTION_NAME" SIZE="40" MAXLENGTH="127" VALUE="{?SUBSCRIPTION_NAME}"><BR>
+<SMALL>(Karakter apa saja yang dapat dicetak, kecuali "/", "#", dan spasi)</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Antrian:</TH>
+<TD COLSPAN="5"><SELECT NAME="PRINTER_URI" SIZE="10"><OPTION VALUE="#ALL#"{?PRINTER_URI=#ALL#? SELECTED:}>Semua Antrian</OPTION>{[printer_name]<OPTION VALUE="{printer_uri_supported}"{?PRINTER_URI={printer_uri_supported}? SELECTED:}>{printer_name}</OPTION>}</SELECT></TD>
+</TR>
+<TR VALIGN="TOP">
+<TH CLASS="label">Kejadian:</TH>
+<TD><INPUT TYPE="CHECKBOX" NAME="EVENT_JOB_CREATED" {?EVENT_JOB_CREATED}>Tugas Dibuat<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_JOB_COMPLETED" {?EVENT_JOB_COMPLETED}>Tugas Selesai<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_JOB_STOPPED" {?EVENT_JOB_STOPPED}>Tugas Berhenti<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_JOB_CONFIG_CHANGED" {?EVENT_JOB_CONFIG_CHANGED}>Opsi Tugas Berubah</TD>
+<TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+<TD><INPUT TYPE="CHECKBOX" NAME="EVENT_PRINTER_STOPPED" {?EVENT_PRINTER_STOPPED}>Antrian Berhenti<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_PRINTER_ADDED" {?EVENT_PRINTER_ADDED}>Antrian Ditambah<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_PRINTER_MODIFIED" {?EVENT_PRINTER_MODIFIED}>Antrian Berubah<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_PRINTER_DELETED" {?EVENT_PRINTER_DELETED}>Antrian Dihapus</TD>
+<TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+<TD><INPUT TYPE="CHECKBOX" NAME="EVENT_SERVER_STARTED" {?EVENT_SERVER_STARTED}>Server Dimulai<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_SERVER_STOPPED" {?EVENT_SERVER_STOPPED}>Server Berhenti<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_SERVER_RESTARTED" {?EVENT_SERVER_RESTARTED}>Server Dijalankan Ulang<BR>
+<INPUT TYPE="CHECKBOX" NAME="EVENT_SERVER_AUDIT" {?EVENT_SERVER_AUDIT}>Audit Keamanan Server</TD>
+</TR>
+<TR>
+<TH CLASS="label">Maksimal Kejadian dalam Berita:</TH>
+<TD COLSPAN="5"><INPUT TYPE="TEXT" NAME="MAX_EVENTS" SIZE="4" MAXLENGTH="4" VALUE="{MAX_EVENTS?{MAX_EVENTS}:20}"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD COLSPAN="5"><INPUT TYPE="SUBMIT" VALUE="Tambah Subskripsi RSS"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/id/admin.tmpl b/templates/id/admin.tmpl
new file mode 100644 (file)
index 0000000..d7ea6a6
--- /dev/null
@@ -0,0 +1,109 @@
+<TABLE CLASS="indent" SUMMARY="Administration Tasks">
+<TR><TD VALIGN="TOP">
+
+<H2 CLASS="title">Pencetak</H2>
+
+<P>
+<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-printer"><INPUT TYPE="SUBMIT" VALUE="Tambah Pencetak"></FORM>
+<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="find-new-printers"><INPUT TYPE="SUBMIT" VALUE="Cari Pencetak Baru"></FORM>
+<FORM ACTION="/printers/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Atur Pencetak"></FORM>
+{have_samba?<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="export-samba"><INPUT TYPE="SUBMIT" VALUE="Ekspor Pencetak ke Samba"></FORM>:}
+</P>
+
+<H2 CLASS="title">Kelas</H2>
+
+<P>
+<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-class"><INPUT TYPE="SUBMIT" VALUE="Tambah Kelas"></FORM>
+<FORM ACTION="/classes/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Atur Kelas"></FORM>
+</P>
+
+<H2 CLASS="title">Tugas</H2>
+
+<P>
+<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Atur Tugas"></FORM>
+</P>
+
+</TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
+
+<H2 CLASS="title">Server</H2>
+
+<P>
+<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server"><INPUT TYPE="SUBMIT" VALUE="Sunting Berkas Konfigurasi"></FORM>
+<FORM ACTION="/admin/log/access_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Lihat Log Akses"></FORM>
+<FORM ACTION="/admin/log/error_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Lihat Log Kesalahan"></FORM>
+<FORM ACTION="/admin/log/page_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Lihat Log Halaman"></FORM>
+</P>
+
+{SETTINGS_ERROR?<P>{SETTINGS_MESSAGE}</P>
+<BLOCKQUOTE>{SETTINGS_ERROR}</BLOCKQUOTE>:
+
+<FORM METHOD="POST" ACTION="/admin">
+
+{ADVANCEDSETTINGS?<P><B>Pengaturan Server\:</B></P>
+
+<P><A HREF="/admin/">Lanjutan <SMALL>&#x25bc;</SMALL></A><BR>
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+<INPUT TYPE="HIDDEN" NAME="ADVANCEDSETTINGS" VALUE="YES">
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_PRINTERS" {?remote_printers}> Lihat pencetak yang dibagikan oleh sistem lain<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Protokol\:
+<INPUT TYPE="CHECKBOX" NAME="BROWSE_REMOTE_CUPS" {?browse_remote_cups}> CUPS
+{HAVE_LDAP?<INPUT TYPE="CHECKBOX" NAME="BROWSE_REMOTE_LDAP" {?browse_remote_ldap}> LDAP:}
+{HAVE_LIBSLP?<INPUT TYPE="CHECKBOX" NAME="BROWSE_REMOTE_SLP" {?browse_remote_slp}> SLP:}<BR>
+<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Bagikan pencetak yang terhubung ke sistem ini<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Klien maks.\:
+<INPUT TYPE="TEXT" NAME="MAX_CLIENTS" VALUE="{?max_clients}" SIZE="6"><BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Protokol\:
+<INPUT TYPE="CHECKBOX" NAME="BROWSE_LOCAL_CUPS" {?browse_local_cups}> CUPS
+{HAVE_DNSSD?<INPUT TYPE="CHECKBOX" NAME="BROWSE_LOCAL_DNSSD" {?browse_local_dnssd}> DNS-SD:}
+{HAVE_LDAP?<INPUT TYPE="CHECKBOX" NAME="BROWSE_LOCAL_LDAP" {?browse_local_ldap}> LDAP:}
+{HAVE_LIBSLP?<INPUT TYPE="CHECKBOX" NAME="BROWSE_LOCAL_SLP" {?browse_local_slp}> SLP:}<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Perbolehkan mencetak dari Internet<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="CHECKBOX" NAME="BROWSE_WEB_IF" {?browse_web_if}> Advertise web interface<BR>
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Perbolehkan administrasi dari jarak jauh<BR>
+{have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" {?kerberos}> Gunakan otentikasi Kerberos (<A HREF="/help/kerberos.html?TOPIC=Getting+Started">FAQ</A>)<BR>:}
+<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Perbolehkan pengguna biasa untuk membatalkan semua tugas (termasuk tugas orang lain)<BR>
+<INPUT TYPE="CHECKBOX" NAME="PRESERVE_JOB_HISTORY" {?preserve_job_history}> Catat histori tugas<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Banyaknya tugas\:
+<INPUT TYPE="TEXT" NAME="MAX_JOBS" VALUE="{?max_jobs}" SIZE="6"><BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="CHECKBOX" NAME="PRESERVE_JOB_FILES" {?preserve_job_files}> Catat berkas tugas cetak<BR>
+<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Simpan informasi kesalahan untuk mencari dan memecahkan masalah<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ukuran maks. berkas log\:
+<INPUT TYPE="TEXT" NAME="MAX_LOG_SIZE" VALUE="{?max_log_size}" SIZE="6"></P>
+
+:<P><B>Pengaturan Server:</B></P>
+
+<P><A HREF="/admin/?ADVANCEDSETTINGS=YES">Lanjutan <SMALL>&#x25b6;</SMALL></A><BR>
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_PRINTERS" {?remote_printers}> Lihat pencetak yang dibagikan oleh sistem lain<BR>
+<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Bagikan pencetak yang terhubung ke sistem ini<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Perbolehkan mencetak dari Internet<BR>
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Perbolehkan administrasi dari jarak jauh<BR>
+{have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" {?kerberos}> Gunakan otentikasi Kerberos (<A HREF="/help/kerberos.html?TOPIC=Getting+Started">FAQ</A>)<BR>:}
+<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Perbolehkan pengguna biasa untuk membatalkan semua tugas (termasuk tugas orang lain)<BR>
+<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Save debugging information for troubleshooting</P>
+
+}
+<P><INPUT TYPE="SUBMIT" NAME="CHANGESETTINGS" VALUE="Ubah Pengaturan"></P>
+
+</FORM>}
+
+</TD></TR>
+</TABLE>
+
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Subskripsi RSS</H2>
+
+<P>
+<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="Tambah Subskripsi RSS"></FORM>
+</P>
+
+</DIV>
+
+{notify_subscription_id?<TABLE CLASS="list" SUMMARY="RSS Subscriptions">
+<THEAD><TR><TH>Nama</TH><TH>Kejadian</TH><TH>Nama Antrian</TH></TR></THEAD>
+<TBODY>{[notify_subscription_id]
+<TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR>
+<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="Cancel RSS Subscription"></FORM>&nbsp;</TD><TD>{notify_events}</TD><TD NOWRAP>&nbsp;{notify_printer_name?{notify_printer_name}:Semua Antrian}</TD></TR>}
+</TBODY>
+</TABLE>:}
diff --git a/templates/id/choose-device.tmpl b/templates/id/choose-device.tmpl
new file mode 100644 (file)
index 0000000..6bd91bd
--- /dev/null
@@ -0,0 +1,53 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">{op=modify-printer?Ubah {printer_name}:Tambah Pencetak}</H2>
+
+{CUPS_GET_DEVICES_DONE?:<P><IMG SRC="/images/wait.gif" WIDTH="16" HEIGHT="16" ALIGN="ABSMIDDLE"
+ALT="Busy Indicator"> Mencari pencetak...</P>}
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{printer_name?<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">:}
+
+<TABLE>
+{op=add-printer?:<TR>
+<TH CLASS="label">Koneksi yang Ada:</TH>
+<TD><INPUT TYPE="RADIO" NAME="DEVICE_URI" VALUE="{current_device_uri}" CHECKED>
+{current_device_uri}</TD>
+</TR>}
+<TR>
+<TH CLASS="label">Pencetak Lokal:</TH>
+<TD>
+{[device_uri]{device_class!network?<INPUT TYPE="RADIO" NAME="DEVICE_URI"
+VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
+{device_info} {?device_make_and_model!Unknown?({device_make_and_model}):}<BR>
+:}}
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Pencetak Jaringan yang Ditemukan:</TH>
+<TD>
+{[device_uri]{device_class=network?{device_uri~[a-z]+://?<INPUT TYPE="RADIO" NAME="DEVICE_URI"
+VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
+{device_info} {?device_make_and_model!Unknown?({device_make_and_model}):}<BR>
+:}:}}
+</TD>
+</TR>
+<TR>
+<TR>
+<TH CLASS="label">Pencetak Jaringan Lainnya:</TH>
+<TD>
+{[device_uri]{device_class=network?{device_uri~[a-z]+://?:<INPUT TYPE="RADIO" NAME="DEVICE_URI"
+VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
+{device_info} {?device_make_and_model!Unknown?({device_make_and_model}):}<BR>
+}:}}
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Lanjut"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/choose-make.tmpl b/templates/id/choose-make.tmpl
new file mode 100644 (file)
index 0000000..3362738
--- /dev/null
@@ -0,0 +1,63 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">{op=modify-printer?Ubah {printer_name}:Tambah Pencetak}</H2>
+
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{printer_name?<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">:}
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+
+<TABLE>
+{op=modify-printer?:<TR>
+<TH CLASS="label">Nama:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">{printer_name}</TD>
+</TR>}
+<TR>
+<TH CLASS="label">Deskripsi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{printer_info}">{printer_info}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Lokasi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{printer_location}">{printer_location}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Koneksi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">{device_uri}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Berbagi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_IS_SHARED" VALUE="{?printer_is_shared}">
+{?printer_is_shared=?Do Not:{?printer_is_shared=0?Do Not:}} Share This Printer</TD>
+</TR>
+<TR>
+<TH CLASS="label">Buatan:</TH>
+<TD>
+<SELECT NAME="PPD_MAKE" SIZE="10">
+{[ppd_make]<OPTION VALUE="{ppd_make}" {?current_make={ppd_make}?SELECTED:}>{ppd_make}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Lanjut"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR>
+<TH CLASS="label">Atau, Sediakan Berkas PPD:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="{op=add-printer?Tambah Pencetak:Ubah Pencetak}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/choose-model.tmpl b/templates/id/choose-model.tmpl
new file mode 100644 (file)
index 0000000..d294a3b
--- /dev/null
@@ -0,0 +1,59 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">{op=modify-printer?Modify {printer_name}:Tambah Pencetak}</H2>
+
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{printer_name?<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">:}
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+<TABLE>
+{op=modify-printer?:<TR>
+<TH CLASS="label">Nama:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">{printer_name}</TD>
+</TR>}
+<TR>
+<TH CLASS="label">Deskripsi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{printer_info}">{printer_info}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Lokasi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{printer_location}">{printer_location}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Koneksi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">{device_uri}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Berbagi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_IS_SHARED" VALUE="{?printer_is_shared}">
+{?printer_is_shared=?Jangan:{?printer_is_shared=0?Jangan:}} Berbagi Pencetak Ini</TD>
+</TR>
+<TR>
+<TH CLASS="label">Pembuat:</TH>
+<TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Pilih Manufaktur/Pembuat Lainnya"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Model:</TH>
+<TD>
+<SELECT NAME="PPD_NAME" SIZE="10">
+{op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Penggerak Saat Ini - {current_make_and_model}</OPTION>:}
+{[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language})
+}</SELECT>
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Atau Sediakan Berkas PPD:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="{op=add-printer?Tambah Pencetak:Ubah Pencetak}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/choose-serial.tmpl b/templates/id/choose-serial.tmpl
new file mode 100644 (file)
index 0000000..ceb291f
--- /dev/null
@@ -0,0 +1,51 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">{op=modify-printer?Modify {printer_name}:Tambah Pencetak}</H2>
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{printer_name?<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">:}
+
+<TABLE>
+<TR>
+<TH CLASS="label">Koneksi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">{device_uri}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Kecepatan Data:</TH>
+<TD><SELECT NAME="BAUDRATE">
+{[baudrates]<OPTION {?baudrate={baudrates}?SELECTED:}>{baudrates}}
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Paritas:</TH>
+<TD><SELECT NAME="PARITY">
+<OPTION VALUE="none" {?parity=none?SELECTED:}>Nihil
+<OPTION VALUE="even" {?parity=even?SELECTED:}>Genap
+<OPTION VALUE="odd" {?parity=odd?SELECTED:}>Ganjil
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Bit Data:</TH>
+<TD><SELECT NAME="BITS">
+<OPTION {?bits=8?SELECTED:}>8
+<OPTION {?bits=7?SELECTED:}>7
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Kendali Aliran Data:</TH>
+<TD><SELECT NAME="FLOW">
+<OPTION VALUE="none" {?flow=none?SELECTED:}>Nihil
+<OPTION VALUE="soft" {?flow=soft?SELECTED:}>XON/XOFF (Peranti Lunak)
+<OPTION VALUE="hard" {?flow=hard?SELECTED:}>RTS/CTS (Peranti Keras)
+<OPTION VALUE="dtrdsr" {?flow=dtrdsr?SELECTED:}>DTR/DSR (Peranti Keras)
+</SELECT></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Lanjut"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/choose-uri.tmpl b/templates/id/choose-uri.tmpl
new file mode 100644 (file)
index 0000000..57380f6
--- /dev/null
@@ -0,0 +1,42 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">{op=modify-printer?Modify {printer_name}:Tambah Pencetak}</H2>
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{printer_name?<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">:}
+<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
+
+<TABLE>
+<TR>
+<TH CLASS="label">Koneksi:</TH>
+<TD><INPUT TYPE="TEXT" SIZE="60" MAXLENGTH="1023" NAME="DEVICE_URI" VALUE="{current_device_uri?{current_device_uri}:{device_uri}}"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>Contoh:
+<PRE>
+    http://hostname:631/ipp/
+    http://hostname:631/ipp/port1
+
+    ipp://hostname/ipp/
+    ipp://hostname/ipp/port1
+
+    lpd://hostname/queue
+
+    socket://hostname
+    socket://hostname:9100
+</PRE>
+
+<P>Lihat <A HREF="/help/network.html" TARGET="_blank">"Pencetak Jaringan"</A> untuk URI yang tepat bagi pencetak Anda.</P>
+
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Lanjut"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/class-added.tmpl b/templates/id/class-added.tmpl
new file mode 100644 (file)
index 0000000..12c408f
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Tambah Kelas</H2>
+
+<P>Kelas <A HREF="/classes/{printer_name}">{printer_name}</A> telah berhasil ditambahkan.
+
+</DIV>
diff --git a/templates/id/class-confirm.tmpl b/templates/id/class-confirm.tmpl
new file mode 100644 (file)
index 0000000..23bec54
--- /dev/null
@@ -0,0 +1,10 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Hapus Kelas {printer_name}</H2>
+
+<P><B>Peringatan:</B> Anda yakin untuk menghapus kelas
+{printer_name}?</P>
+
+<P ALIGN="CENTER"><FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="op" VALUE="delete-class"><INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}"><INPUT TYPE="SUBMIT" NAME="confirm" VALUE="Hapus Kelas"></FORM></P>
+
+</DIV>
diff --git a/templates/id/class-deleted.tmpl b/templates/id/class-deleted.tmpl
new file mode 100644 (file)
index 0000000..30320cb
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Hapus Kelas {printer_name}</H2>
+
+<P>Kelas {printer_name} telah berhasil dihapus.
+
+</DIV>
diff --git a/templates/id/class-jobs-header.tmpl b/templates/id/class-jobs-header.tmpl
new file mode 100644 (file)
index 0000000..e6ca447
--- /dev/null
@@ -0,0 +1,3 @@
+<DIV CLASS="indent">
+<H3 CLASS="title">Tugas</H3>
+</DIV>
diff --git a/templates/id/class-modified.tmpl b/templates/id/class-modified.tmpl
new file mode 100644 (file)
index 0000000..d2fdded
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Ubah Kelas {printer_name}</H2>
+
+<P>Kelas <A HREF="/classes/{printer_name}">{printer_name}</A> telah berhasil diubah.
+
+</DIV>
diff --git a/templates/id/class.tmpl b/templates/id/class.tmpl
new file mode 100644 (file)
index 0000000..ab85b1f
--- /dev/null
@@ -0,0 +1,41 @@
+<DIV CLASS="indent">
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>
+({printer_state=3?Idle:{printer_state=4?Memproses:Ditahan}},
+{printer_is_accepting_jobs=0?Menolak Tugas:Menerima Tugas},
+{server_is_sharing_printers=0?Jangan:{printer_is_shared=0?Jangan:}} Berbagi{default_name={printer_name}?, Server Baku:})</H2>
+
+<FORM METHOD="POST" ACTION="{printer_uri_supported}" NAME="maintenance">
+<SELECT NAME="OP" ONCHANGE="document.maintenance.submit();">
+<OPTION VALUE="">Perawatan</OPTION>
+<OPTION VALUE="print-test-page">Halaman Uji Cetak</OPTION>
+{printer_state=5?<OPTION VALUE="start-class">Resume Kelas</OPTION>:<OPTION VALUE="stop-class">Tahan Kelas</OPTION>}
+{printer_is_accepting_jobs=0?<OPTION VALUE="accept-jobs">Terima Tugas</OPTION>:<OPTION VALUE="reject-jobs">Tolak Tugas</OPTION>}
+<OPTION VALUE="move-jobs">Pindahkan Semua Tugas</OPTION>
+<OPTION VALUE="purge-jobs">Batalkan Semua Tugas</OPTION>
+</SELECT>
+<INPUT TYPE="SUBMIT" VALUE="Lakukan!" STYLE="display: none;">
+</FORM>
+
+<FORM METHOD="POST" ACTION="{admin_uri}" NAME="administration">
+<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">
+<SELECT NAME="OP" ONCHANGE="document.administration.submit();">
+<OPTION VALUE="">Administrasi</OPTION>
+<OPTION VALUE="modify-class">Ubah Kelas</OPTION>
+<OPTION VALUE="delete-class">Hapus Kelas</OPTION>
+<OPTION VALUE="set-class-options">Atur Opsi Baku</OPTION>
+<OPTION VALUE="set-as-default">Atur Sebagai Server Baku</OPTION>
+<OPTION VALUE="set-allowed-users">Atur Pengguna yang Diperbolehkan</OPTION>
+</SELECT>
+<INPUT TYPE="SUBMIT" VALUE="Lakukan!" STYLE="display: none;">
+</FORM>
+
+<TABLE SUMMARY="{printer_name}">
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Deskripsi:</TH><TD>{printer_info}</TD></TR>
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Lokasi:</TH><TD>{printer_location}</TD></TR>
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Anggota:</TH><TD>{?member_uris=?None:{member_uris}}</TD></TR>
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Baku:</TH><TD>job-sheets={job_sheets_default}
+media={media_default?{media_default}:unknown}
+{sides_default?sides={sides_default}:}</TD></TR>
+</TABLE>
+
+</DIV>
diff --git a/templates/id/classes-header.tmpl b/templates/id/classes-header.tmpl
new file mode 100644 (file)
index 0000000..da891a3
--- /dev/null
@@ -0,0 +1 @@
+<P ALIGN="CENTER">{total=0?Tidak ada kelas:Menampilkan {#printer_name} dari {total} kelas{total=1?:}}.</P>
diff --git a/templates/id/classes.tmpl b/templates/id/classes.tmpl
new file mode 100644 (file)
index 0000000..c8e9b5f
--- /dev/null
@@ -0,0 +1,11 @@
+{#printer_name=0?:
+<TABLE CLASS="list" SUMMARY="Class List">
+<THEAD>
+<TR><TH><A HREF="{THISURL}?QUERY={?QUERY}&amp;WHICH_JOBS={?WHICH_JOBS}&amp;FIRST={FIRST}&amp;ORDER={ORDER=dec?asc:dec}">{ORDER=dec?<SMALL>&#x25b2;</SMALL> Nama Antrian <SMALL>&#x25b2;</SMALL>:<SMALL>&#x25bc;</SMALL> Nama Antrian <SMALL>&#x25bc;</SMALL>}</A></TH><TH>Deskripsi</TH><TH>Lokasi</TH><TH>Anggota</TH><TH>Status</TH></TR>
+</THEAD>
+<TBODY>
+{[printer_name]
+<TR><TD><A HREF="{printer_uri_supported}">{printer_name}</A></TD><TD>{printer_info}</TD><TD>{printer_location}</TD><TD>{?member_uris=?Nihil:{member_uris}}</TD><TD>{printer_state=3?Idle:{printer_state=4?Memproses:Ditahan}}{printer_state_message? - "{printer_state_message}":}</TD></TR>
+}
+</TBODY>
+</TABLE></DIV>}
diff --git a/templates/id/command.tmpl b/templates/id/command.tmpl
new file mode 100644 (file)
index 0000000..b38d2c9
--- /dev/null
@@ -0,0 +1,12 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">{title} Pada {printer_name}</H2>
+
+<P>{job_state>5?:<IMG SRC="/images/wait.gif" WIDTH="16" HEIGHT="16"
+ALIGN="ABSMIDDLE" ALT="Indikator Kesibukan"> }Perintah tugas pencetak
+{job_state=3?pending:{job_state=4?held:
+{job_state=5?processing:{job_state=6?stopped:
+{job_state=7?canceled:{job_state=8?aborted:completed}}}}}}{job_state=9?:{job_printer_state_message?,
+<EM>"{job_printer_state_message}"</EM>:}}</P>
+
+</DIV>
diff --git a/templates/id/edit-config.tmpl b/templates/id/edit-config.tmpl
new file mode 100644 (file)
index 0000000..fde6c63
--- /dev/null
@@ -0,0 +1,24 @@
+<SCRIPT TYPE="text/javascript">
+function reset_config()
+{
+  document.cups.CUPSDCONF.value = "{?cupsdconf_default}";
+}
+</SCRIPT>
+
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Sunting Berkas Konfigurasi</H2>
+
+<FORM NAME="cups" METHOD="POST" ACTION="/admin/">
+
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+
+<TEXTAREA NAME="CUPSDCONF" COLS="80" ROWS="25">{CUPSDCONF}</TEXTAREA>
+
+<P><INPUT TYPE="SUBMIT" NAME="SAVECHANGES" VALUE="Simpan Perubahan">
+<INPUT TYPE="BUTTON" VALUE="Gunakan Konfigurasi Baku"
+onClick="reset_config();"></P>
+
+</FORM>
+
+</DIV>
diff --git a/templates/id/error-op.tmpl b/templates/id/error-op.tmpl
new file mode 100644 (file)
index 0000000..2611c5d
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Kesalahan {?title} {?printer_name}</H2>
+
+<P>Kesalahan:</P>
+
+<BLOCKQUOTE>Operasi tak dikenal "{op}"!</BLOCKQUOTE>
+
+</DIV>
diff --git a/templates/id/error.tmpl b/templates/id/error.tmpl
new file mode 100644 (file)
index 0000000..c74bd70
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Kesalahan {?title} {?printer_name}</H2>
+
+<P>{?message?{message}:Kesalahan:}</P>
+
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
+
+</DIV>
diff --git a/templates/id/header.tmpl.in b/templates/id/header.tmpl.in
new file mode 100644 (file)
index 0000000..b45d870
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+       <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+       <TITLE>{title} - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+       <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+       <LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png">
+       {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:}
+</HEAD>
+<BODY>
+<TABLE CLASS="page" SUMMARY="{title}">
+<TR><TD CLASS="body">
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR HEIGHT="36">
+<TD><A HREF="http://www.cups.org/" TARGET="_blank"><IMG
+SRC="/images/left.gif" WIDTH="64" HEIGHT="36" BORDER="0" ALT=""></A></TD>
+<TD CLASS="unsel"><A HREF="/">&nbsp;&nbsp;Home&nbsp;&nbsp;</A></TD>
+<TD CLASS="{SECTION=admin?:un}sel"><A HREF="/admin">&nbsp;&nbsp;Administrasi&nbsp;&nbsp;</A></TD>
+<TD CLASS="{SECTION=classes?:un}sel"><A HREF="/classes/">&nbsp;&nbsp;Kelas&nbsp;&nbsp;</A></TD>
+<TD CLASS="{SECTION=help?:un}sel"><A HREF="/help/">&nbsp;&nbsp;Bantuan&nbsp;Langsung&nbsp;&nbsp;</A></TD>
+<TD CLASS="{SECTION=jobs?:un}sel"><A HREF="/jobs/">&nbsp;&nbsp;Tugas&nbsp;&nbsp;</A></TD>
+<TD CLASS="{SECTION=printers?:un}sel"><A HREF="/printers/">&nbsp;&nbsp;Pencetak&nbsp;&nbsp;</A></TD>
+<TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
+TYPE="SEARCH" NAME="QUERY" SIZE="20" PLACEHOLDER="Search Help"
+VALUE="{SECTION=help?{?QUERY}:}" AUTOSAVE="org.cups.help" RESULTS="20"></FORM></TD>
+<TD><IMG SRC="/images/right.gif" WIDTH="4" HEIGHT="36" ALT=""></TD>
+</TR>
+<TR><TD COLSPAN="9">&nbsp;</TD></TR>
+</TABLE>
diff --git a/templates/id/help-header.tmpl b/templates/id/help-header.tmpl
new file mode 100644 (file)
index 0000000..e28b527
--- /dev/null
@@ -0,0 +1,47 @@
+<DIV CLASS="indent">
+<FORM ACTION="/help/{?HELPFILE}" METHOD="GET">
+{TOPIC?<INPUT TYPE="HIDDEN" NAME="TOPIC" VALUE="{TOPIC}">:}
+
+<P ALIGN="CENTER"><B>Mencari di
+{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:Semua Dokumen}}:</B> <INPUT
+TYPE="SEARCH" NAME="QUERY" VALUE="{?QUERY}" SIZE="40" PLACEHOLDER=""
+AUTOSAVE="org.cups.help" RESULTS="20">
+<INPUT TYPE="SUBMIT" NAME="SEARCH" VALUE="Cari">
+<INPUT TYPE="SUBMIT" NAME="CLEAR" VALUE="Bersihkan"></P>
+
+</FORM>
+
+<!-- Bookmarks -->
+<DIV CLASS="sidebar"><TABLE CLASS="inset" SUMMARY="Contents">
+<TR><TD>
+
+<H3 CLASS="title">Dokumen Bantuan Langsung</H3>
+
+<P CLASS="l0"><A HREF="/help/{QUERY??QUERY={QUERY}:}">Semua Dokumen</A></P>
+<HR>
+
+{[BMTEXT]<P CLASS="l{BMINDENT}"><A HREF="{BMLINK}">{BMTEXT}</A></P>
+}
+</TD></TR>
+</TABLE></DIV>
+
+{QUERY?<P>Hasil Pencarian di {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:Semua Dokumen}}\:</P>
+{QTEXT?<UL>
+{[QTEXT]<LI><A HREF="{QLINK}">{QTEXT}</A>{QPTEXT? (di <I><A HREF="{QPLINK}">{QPTEXT}</A></I>):}</LI>}
+{QTEXT?</UL>:}
+:<P>Tidak ada yang cocok.</P>}
+<HR NOSHADE>:}
+{HELPTITLE?<H1>{HELPTITLE}</H1>
+<FORM ACTION="/help/{?HELPFILE}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="PRINTABLE" VALUE="YES"><INPUT TYPE="SUBMIT" VALUE="Lihat Versi Cetak"></FORM>:
+
+<H1>Bantuan Langsung</H1>
+
+<P>Ini adalah antarmuka bantuan langsung milik CUPS. Masukkan kata yang hendak dicari pada kotak
+di atas atau klik salah satu taut dokumen untuk melihat informasi bantuan langsung tersebut.</P>
+
+<P>Apabila Anda adalah pengguna baru CUPS, bacalah halaman "<a
+href="/help/overview.html">Ikhtisar CUPS</a>". Bagi yang sudah berpengalaman, dapat
+membaca halaman "<a href="/help/whatsnew.html">Apa yang Baru di CUPS
+1.4</a>".</P>
+
+<P><A HREF="http://www.cups.org/">Laman CUPS</A> juga menyediakan berbagai sumber termasuk forum, jawaban untuk pertanyaan-pertanyaan yang sering diajukan, serta formulir untuk mengirim laporan kode hama dan permintaan fitur baru.</P>}
diff --git a/templates/id/help-printable.tmpl b/templates/id/help-printable.tmpl
new file mode 100644 (file)
index 0000000..2463c16
--- /dev/null
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+       <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+       <TITLE>{HELPTITLE}</TITLE>
+       <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups-printable.css">
+       <LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png">
+</HEAD>
+<BODY>
diff --git a/templates/id/help-trailer.tmpl b/templates/id/help-trailer.tmpl
new file mode 100644 (file)
index 0000000..4c1ebed
--- /dev/null
@@ -0,0 +1 @@
+</DIV>
diff --git a/templates/id/job-cancel.tmpl b/templates/id/job-cancel.tmpl
new file mode 100644 (file)
index 0000000..d3d6047
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Batalkan Tugas {job_id}</H2>
+
+<P><A HREF="{job_printer_uri}">Tugas {job_id}</A> telah dibatalkan.
+
+</DIV>
diff --git a/templates/id/job-hold.tmpl b/templates/id/job-hold.tmpl
new file mode 100644 (file)
index 0000000..ab2dd59
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Tahan Tugas {job_id}</H2>
+
+<P><A HREF="{job_printer_uri}">Tugas {job_id}</A> telah ditahan untuk dicetak.
+
+</DIV>
diff --git a/templates/id/job-move.tmpl b/templates/id/job-move.tmpl
new file mode 100644 (file)
index 0000000..91fdbc4
--- /dev/null
@@ -0,0 +1,26 @@
+<DIV CLASS="indent">
+
+<FORM METHOD="POST" ACTION="/{SECTION}/{job_id?:{printer_name}}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{job_id?<INPUT TYPE="HIDDEN" NAME="JOB_ID" VALUE="{job_id}">:}
+
+<H2 CLASS="title">{job_id?Pindahkan Tugas {job_id}:Pindahkan Semua Tugas}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Tujuan Baru:</TH>
+<TD>
+<SELECT NAME="JOB_PRINTER_URI" SIZE="10">
+{[job_printer_uri]<OPTION VALUE="{job_printer_uri}">{job_printer_name}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="{job_id?Pindahkan Tugas:Pindahkan Tugas}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+
+</DIV>
diff --git a/templates/id/job-moved.tmpl b/templates/id/job-moved.tmpl
new file mode 100644 (file)
index 0000000..c52c312
--- /dev/null
@@ -0,0 +1,8 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">{job_id?Pindahkan Tugas {job_id}:Pindahkan Semua Tugas}</H2>
+
+<P>{job_id?<A HREF="/jobs/{job_id}">Tugas {job_id}</A>:Semua tugas} dipindahkan ke
+<A HREF="/{is_class?classes:printers}/{job_printer_name}">{job_printer_name}</A>.</P>
+
+</DIV>
diff --git a/templates/id/job-release.tmpl b/templates/id/job-release.tmpl
new file mode 100644 (file)
index 0000000..a447ae1
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Lepaskan Tugas {job_id}</H2>
+
+<P><A HREF="{job_printer_uri}">Tugas {job_id}</A> telah dilepas untuk dicetak.
+
+</DIV>
diff --git a/templates/id/job-restart.tmpl b/templates/id/job-restart.tmpl
new file mode 100644 (file)
index 0000000..c54601c
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Cetak Ulang Tugas {job_id}</H2>
+
+<P><A HREF="{job_printer_uri}">Tugas {job_id}</A> telah dilaksanakan ulang.
+
+</DIV>
diff --git a/templates/id/jobs-header.tmpl b/templates/id/jobs-header.tmpl
new file mode 100644 (file)
index 0000000..3cba80c
--- /dev/null
@@ -0,0 +1,5 @@
+<DIV CLASS="indent">{?which_jobs=?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Lihat Tugas yang Aktif"></FORM>}
+{?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="Lihat Tugas yang Diselesaikan"></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="Lihat Semua Tugas"></FORM>}</DIV>
+
+<P ALIGN="CENTER">{total=0?Tidak ada tugas:Menampilkan {#job_id} dari {total} tugas {?which_jobs=?yang aktif:{which_jobs=all?:yang diselesaikan}} {total=1?:}}.</P>
diff --git a/templates/id/jobs.tmpl b/templates/id/jobs.tmpl
new file mode 100644 (file)
index 0000000..5670d6d
--- /dev/null
@@ -0,0 +1,37 @@
+{#job_id=0?:
+<TABLE CLASS="list" SUMMARY="Job List">
+<THEAD>
+<TR><TH><A HREF="{THISURL}?QUERY={?QUERY}&amp;WHICH_JOBS={?WHICH_JOBS}&amp;FIRST={FIRST}&amp;ORDER={ORDER=dec?asc:dec}">{ORDER=dec?<SMALL>&#x25b2;</SMALL> ID <SMALL>&#x25b2;</SMALL>:<SMALL>&#x25bc;</SMALL> ID <SMALL>&#x25bc;</SMALL>}</A></TH><TH>Nama</TH><TH>Pengguna</TH><TH>Ukuran</TH><TH>Halaman</TH><TH>Status</TH><TH>Kontrol</TH></TR>
+</THEAD>
+<TBODY>
+{[job_id]
+<TR VALIGN="TOP">
+<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id}&nbsp;</TD>
+<TD>{?job_name=?Tak Dikenal:{job_name}}&nbsp;</TD>
+<TD>{job_originating_user_name}&nbsp;</TD>
+<TD>{job_k_octets}k&nbsp;</TD>
+<TD>{job_media_sheets_completed=0?Tak Dikenal:{?job_media_sheets_completed}}&nbsp;</TD>
+<TD>{job_state=3?ditunda sejak<BR>{time_at_creation}:{job_state=4?ditahan sejak<BR>{time_at_creation}:
+{job_state=5?diproses sejak<BR>{time_at_processing}:{job_state=6?dihentikan:
+{job_state=7?dibatalkan pada<BR>{time_at_completed}:{job_state=8?dibatalkan:diselesaikan pada<BR>{time_at_completed}}}}}}}&nbsp;{job_printer_state_message?<BR>
+<EM>"{job_printer_state_message}"</EM>:}</TD>
+<TD>
+{job_preserved>0?{job_state>5?
+<FORM ACTION="/jobs/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="restart-job"><INPUT TYPE="HIDDEN" NAME="job_id" VALUE="{job_id}"><INPUT TYPE="HIDDEN" NAME="job_printer_uri" VALUE="{job_printer_uri}">
+<INPUT TYPE="SUBMIT" VALUE="Reprint Job"></FORM>:}:}
+{job_state=4?
+<FORM ACTION="/jobs/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="release-job"><INPUT TYPE="HIDDEN" NAME="job_id" VALUE="{job_id}"><INPUT TYPE="HIDDEN" NAME="job_printer_uri" VALUE="{job_printer_uri}">
+<INPUT TYPE="SUBMIT" VALUE="Release Job"></FORM>:}
+{job_state=3?
+<FORM ACTION="/jobs/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="hold-job"><INPUT TYPE="HIDDEN" NAME="job_id" VALUE="{job_id}"><INPUT TYPE="HIDDEN" NAME="job_printer_uri" VALUE="{job_printer_uri}">
+<INPUT TYPE="SUBMIT" VALUE="Hold Job"></FORM>:}
+{job_state<7?
+<FORM ACTION="/jobs/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-job"><INPUT TYPE="HIDDEN" NAME="job_id" VALUE="{job_id}"><INPUT TYPE="HIDDEN" NAME="job_printer_uri" VALUE="{job_printer_uri}">
+<INPUT TYPE="SUBMIT" VALUE="Cancel Job"></FORM>
+<FORM ACTION="/jobs/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="move-job"><INPUT TYPE="HIDDEN" NAME="job_id" VALUE="{job_id}"><INPUT TYPE="SUBMIT" VALUE="Move Job"></FORM>:}
+&nbsp;</TD>
+</TR>
+}
+</TBODY>
+</TABLE>
+}
diff --git a/templates/id/list-available-printers.tmpl b/templates/id/list-available-printers.tmpl
new file mode 100644 (file)
index 0000000..3c8884c
--- /dev/null
@@ -0,0 +1,11 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Pencetak yang Ada</H2>
+
+{#device_uri=0?<P>Tidak ada pencetak.</P>
+:<UL>{[device_uri]
+<LI><FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-printer"><INPUT TYPE="HIDDEN" NAME="TEMPLATE_NAME" VALUE="{template_name}"><INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="Local Printer"><INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{device_make_and_model}"><INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}"><INPUT TYPE="SUBMIT" VALUE="Tambah Pencetak Ini"></FORM>
+{device_make_and_model} ({device_info})</LI>
+}</UL>}
+
+</DIV>
diff --git a/templates/id/modify-class.tmpl b/templates/id/modify-class.tmpl
new file mode 100644 (file)
index 0000000..ad8f311
--- /dev/null
@@ -0,0 +1,33 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Ubah Kelas {printer_name}</H2>
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+
+<TABLE>
+<TR>
+<TH CLASS="label">Deskripsi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Lokasi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Anggota:</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Ubah Kelas"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/modify-printer.tmpl b/templates/id/modify-printer.tmpl
new file mode 100644 (file)
index 0000000..ffe1203
--- /dev/null
@@ -0,0 +1,37 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Ubah {printer_name}</H2>
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+
+<TABLE>
+<TR>
+<TH CLASS="label">Deskripsi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Deskripsi yang mudah dibaca, seperti "HP LaserJet dengan Pendupleks")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Lokasi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Deskripsi yang mudah dibaca, seperti "Lab 1")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Koneksi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">{device_uri}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Berbagi:</TH>
+<TD><INPUT TYPE="CHECKBOX" NAME="PRINTER_IS_SHARED" {PRINTER_IS_SHARED=1?CHECKED:}>
+Berbagi Pencetak Ini</TD>
+</TR>
+<TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Lanjut"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
diff --git a/templates/id/norestart.tmpl b/templates/id/norestart.tmpl
new file mode 100644 (file)
index 0000000..f39d9f2
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Ubah Pengaturan</H2>
+
+<P>Server tidak dijalankan ulang karena tidak ada perubahan yang terjadi...</P>
+
+</DIV>
diff --git a/templates/id/option-boolean.tmpl b/templates/id/option-boolean.tmpl
new file mode 100644 (file)
index 0000000..e832ee1
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+<TH {conflicted=1?CLASS="conflict":CLASS="label"} WIDTH="50%"><A NAME="{keyword}">{keytext}</A>:</TH>
+<TD>
+{[choices]<INPUT TYPE="RADIO" NAME="{keyword-1}" {choices={defchoice-1}?CHECKED:} VALUE="{choices}">{text}}
+</TD>
+</TR>
diff --git a/templates/id/option-conflict.tmpl b/templates/id/option-conflict.tmpl
new file mode 100644 (file)
index 0000000..71e2bcc
--- /dev/null
@@ -0,0 +1,7 @@
+<P><B>Kesalahan:</B> Opsi berikut ini konflik:</P>
+
+<UL>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
+}</UL>
+
+<P>Silakan ubah satu atau lebih opsi yang ada untuk memperbaiki masalah ini.</P>
diff --git a/templates/id/option-header.tmpl b/templates/id/option-header.tmpl
new file mode 100644 (file)
index 0000000..464726a
--- /dev/null
@@ -0,0 +1,5 @@
+<DIV CLASS="tab" ID="{group_id}">
+
+<H3 ALIGN="CENTER">{group}</H3>
+
+<TABLE WIDTH="100%">
diff --git a/templates/id/option-pickmany.tmpl b/templates/id/option-pickmany.tmpl
new file mode 100644 (file)
index 0000000..0da75e5
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+<TH {conflicted=1?CLASS="conflict":CLASS="label"} WIDTH="50%"><A NAME="{keyword}">{keytext}</A>:</TH>
+<TD><SELECT NAME="{keyword}" MULTIPLE SIZE="10">
+{[choices]<OPTION {choices={defchoice-1}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT></TD>
+</TR>
diff --git a/templates/id/option-pickone.tmpl b/templates/id/option-pickone.tmpl
new file mode 100644 (file)
index 0000000..33fca8a
--- /dev/null
@@ -0,0 +1,18 @@
+<TR>
+<TH {conflicted=1?CLASS="conflict":CLASS="label"} WIDTH="50%"><A NAME="{keyword}">{keytext}</A>:</TH>
+<TD><SELECT NAME="{keyword}" ID="select-{keyword}" ONCHANGE="update_paramtable('{keyword}')">
+{[choices]<OPTION {choices={defchoice-1}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT>
+{iscustom=1?<TABLE NAME="paramtable" id="{keyword}-params">{[params]
+<TR><TH CLASS="sublabel">{paramtext}:</TH>
+<TD>{params=Units?<SELECT NAME="{keyword}.{params}">
+<OPTION VALUE="pt"{paramvalue=pt? SELECTED:}>Poin</OPTION>
+<OPTION VALUE="mm"{paramvalue=mm? SELECTED:}>Milimeter</OPTION>
+<OPTION VALUE="cm"{paramvalue=cm? SELECTED:}>Sentimeter</OPTION>
+<OPTION VALUE="in"{paramvalue=in? SELECTED:}>Inci</OPTION>
+<OPTION VALUE="ft"{paramvalue=ft? SELECTED:}>Kaki</OPTION>
+<OPTION VALUE="m"{paramvalue=m? SELECTED:}>Meter</OPTION>
+</SELECT>:<INPUT TYPE="{inputtype}" NAME="{keyword}.{params}" VALUE="{paramvalue}">}</TD></TR>
+}</TABLE>
+</TD>:}
+</TR>
diff --git a/templates/id/option-trailer.tmpl b/templates/id/option-trailer.tmpl
new file mode 100644 (file)
index 0000000..a403a98
--- /dev/null
@@ -0,0 +1,5 @@
+</TABLE>
+
+<P ALIGN="CENTER"><INPUT TYPE="SUBMIT" VALUE="Atur Opsi Baku"></P>
+
+</DIV>
diff --git a/templates/id/pager.tmpl b/templates/id/pager.tmpl
new file mode 100644 (file)
index 0000000..00b6340
--- /dev/null
@@ -0,0 +1,6 @@
+<TABLE CLASS="inset" SUMMARY="Paging Bar">
+<TR>
+       <TD WIDTH="50%">{PREV?<FORM ACTION="{THISURL}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="QUERY" VALUE="{?QUERY}"><INPUT TYPE="HIDDEN" NAME="ORDER" VALUE="{?ORDER}"><INPUT TYPE="HIDDEN" NAME="WHICH_JOBS" VALUE="{?WHICH_JOBS}"><INPUT TYPE="HIDDEN" NAME="FIRST" VALUE="{PREV}"><INPUT TYPE="SUBMIT" VALUE="&#x25c0; Sebelumnya"></FORM>:&nbsp;}</TD>
+       <TD WIDTH="50%" ALIGN="RIGHT">{NEXT?<FORM ACTION="{THISURL}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="QUERY" VALUE="{?QUERY}"><INPUT TYPE="HIDDEN" NAME="ORDER" VALUE="{?ORDER}"><INPUT TYPE="HIDDEN" NAME="WHICH_JOBS" VALUE="{?WHICH_JOBS}"><INPUT TYPE="HIDDEN" NAME="FIRST" VALUE="{NEXT}"><INPUT TYPE="SUBMIT" VALUE="Selanjutnya &#x25b6;"></FORM>:&nbsp;}</TD>
+</TR>
+</TABLE>
diff --git a/templates/id/printer-accept.tmpl b/templates/id/printer-accept.tmpl
new file mode 100644 (file)
index 0000000..bba229a
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Terima Tugas dari {is_class?Kelas:Pencetak} {printer_name}</H2>
+
+<P>{is_class?Kelas:Pencetak} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+kini menerima tugas.</P>
+
+</DIV>
diff --git a/templates/id/printer-added.tmpl b/templates/id/printer-added.tmpl
new file mode 100644 (file)
index 0000000..636496a
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Tambah Pencetak</H2>
+
+<P>Pencetak <A HREF="/printers/{printer_name}">{printer_name}</A> telah berhasil ditambahkan.
+
+</DIV>
diff --git a/templates/id/printer-configured.tmpl b/templates/id/printer-configured.tmpl
new file mode 100644 (file)
index 0000000..c2c8179
--- /dev/null
@@ -0,0 +1,8 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Atur Opsi Baku untuk {printer_name}</H2>
+
+<P>Opsi baku {OP=set-class-options?kelas <A HREF="/classes/{printer_name}">:pencetak <A HREF="/printers/{printer_name}">}{printer_name}</A>
+telah berhasil ditetapkan.
+
+</DIV>
diff --git a/templates/id/printer-confirm.tmpl b/templates/id/printer-confirm.tmpl
new file mode 100644 (file)
index 0000000..de668e7
--- /dev/null
@@ -0,0 +1,10 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Hapus Pencetak {printer_name}</H2>
+
+<P><B>Peringatan:</B> Anda yakin untuk menghapus
+{printer_name}?</P>
+
+<P ALIGN="CENTER"><FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="delete-printer"><INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}"><INPUT TYPE="SUBMIT" NAME="confirm" VALUE="Hapus Pencetak"></FORM></P>
+
+</DIV>
diff --git a/templates/id/printer-default.tmpl b/templates/id/printer-default.tmpl
new file mode 100644 (file)
index 0000000..2bbedae
--- /dev/null
@@ -0,0 +1,11 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Atur {is_class?Kelas:Pencetak} {printer_name} sebagai Baku</H2>
+
+<P>{is_class?Kelas:Pencetak} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+telah dijadikan pencetak utama pada server.</P>
+
+<BLOCKQUOTE><B>Catatan:</B> Semua pengguna yang diatur melalui perintah <TT>lpoptions</TT> akan ditimpa oleh pengaturan ini.</BLOCKQUOTE>
+
+</DIV>
diff --git a/templates/id/printer-deleted.tmpl b/templates/id/printer-deleted.tmpl
new file mode 100644 (file)
index 0000000..e4492ea
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Hapus Pencetak {printer_name}</H2>
+
+<P>Pencetak {printer_name} telah berhasil dihapus.
+
+</DIV>
diff --git a/templates/id/printer-jobs-header.tmpl b/templates/id/printer-jobs-header.tmpl
new file mode 100644 (file)
index 0000000..e6ca447
--- /dev/null
@@ -0,0 +1,3 @@
+<DIV CLASS="indent">
+<H3 CLASS="title">Tugas</H3>
+</DIV>
diff --git a/templates/id/printer-modified.tmpl b/templates/id/printer-modified.tmpl
new file mode 100644 (file)
index 0000000..16a7ad3
--- /dev/null
@@ -0,0 +1,7 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Ubah Pencetak {printer_name}</H2>
+
+<P>Pencetak <A HREF="/printers/{printer_name}">{printer_name}</A> telah berhasil diubah.
+
+</DIV>
diff --git a/templates/id/printer-purge.tmpl b/templates/id/printer-purge.tmpl
new file mode 100644 (file)
index 0000000..5dff3ef
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Bersihkan Tugas untuk {is_class?Kelas:Pencetak} {printer_name}</H2>
+
+<P>{is_class?Kelas:Pencetak} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+telah dibersihkan dari semua tugas.</P>
+
+</DIV>
diff --git a/templates/id/printer-reject.tmpl b/templates/id/printer-reject.tmpl
new file mode 100644 (file)
index 0000000..616dbf0
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Tolak Tugas untuk {is_class?Kelas:Pencetak} {printer_name}</H2>
+
+<P>{is_class?Kelas:Pencetak} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+tidak lagi menerima tugas.</P>
+
+</DIV>
diff --git a/templates/id/printer-start.tmpl b/templates/id/printer-start.tmpl
new file mode 100644 (file)
index 0000000..ca3d95a
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Menjalankan Ulang {is_class?Kelas:Pencetak} {printer_name}</H2>
+
+<P>{is_class?Kelas:Pencetak} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+telah dijalankan lagi.</P>
+
+</DIV>
diff --git a/templates/id/printer-stop.tmpl b/templates/id/printer-stop.tmpl
new file mode 100644 (file)
index 0000000..ca022e0
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Menghentikan {is_class?Kelas:Pencetak} {printer_name}</H2>
+
+<P>{is_class?Kelas:Pencetak} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+telah dihentikan.</P>
+
+</DIV>
diff --git a/templates/id/printer.tmpl b/templates/id/printer.tmpl
new file mode 100644 (file)
index 0000000..68e0a39
--- /dev/null
@@ -0,0 +1,45 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>
+({printer_state=3?Menganggur:{printer_state=4?Memproses:Berhenti}},
+{printer_is_accepting_jobs=0?Menolak Tugas:Menerima Tugas},
+{server_is_sharing_printers=0?Tidak:{printer_is_shared=0?Tidak:}} Berbagi{default_name={printer_name}?, Server Baku:})</H2>
+
+<FORM METHOD="POST" ACTION="{printer_uri_supported}" NAME="maintenance">
+<SELECT NAME="OP" ONCHANGE="document.maintenance.submit();">
+<OPTION VALUE="">Perawatan</OPTION>
+<OPTION VALUE="print-test-page">Cetak Halaman Uji</OPTION>
+{printer_commands~.*Clean.*?<OPTION VALUE="clean-print-heads">Bersihkan Kepala Pencetak</OPTION>:}
+{printer_commands~.*PrintSelfTestPage.*?<OPTION VALUE="print-self-test-page">Cetak Halaman Uji-Sendiri</OPTION>:}
+{printer_state=5?<OPTION VALUE="start-printer">Resume Pencetak</OPTION>:<OPTION VALUE="stop-printer">Tahan Pencetak</OPTION>}
+{printer_is_accepting_jobs=0?<OPTION VALUE="accept-jobs">Terima Tugas</OPTION>:<OPTION VALUE="reject-jobs">Tolak Tugas</OPTION>}
+<OPTION VALUE="move-jobs">Pindahkan Semua TUgas</OPTION>
+<OPTION VALUE="purge-jobs">Batalkan Semua Tugas</OPTION>
+</SELECT>
+<INPUT TYPE="SUBMIT" VALUE="Lakukan!" STYLE="display: none;">
+</FORM>
+
+<FORM METHOD="POST" ACTION="{admin_uri}" NAME="administration">
+<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">
+<SELECT NAME="OP" ONCHANGE="document.administration.submit();">
+<OPTION VALUE="">Administrasi</OPTION>
+<OPTION VALUE="modify-printer">Ubah Pencetak</OPTION>
+<OPTION VALUE="delete-printer">Hapus Pencetak</OPTION>
+<OPTION VALUE="set-printer-options">Atur Opsi Baku</OPTION>
+<OPTION VALUE="set-as-default">Atus Sebagai Server Baku</OPTION>
+<OPTION VALUE="set-allowed-users">Atur Pengguna yang Diperbolehkan</OPTION>
+</SELECT>
+<INPUT TYPE="SUBMIT" VALUE="Lakukan!" STYLE="display: none;">
+</FORM>
+
+<TABLE SUMMARY="{printer_name}">
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Deskripsi:</TH><TD>{printer_info}</TD></TR>
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Lokasi:</TH><TD>{printer_location}</TD></TR>
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Penggerak:</TH><TD>{printer_make_and_model} ({color_supported=1?warna:skala abu-abu}{sides_supported?, cetak 2-sisi:})<BR>
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Koneksi:</TH><TD>{device_uri}</TD></TR>
+<TR><TH ALIGN="RIGHT" VALIGN="TOP">Baku:</TH><TD>job-sheets={job_sheets_default}
+media={media_default?{media_default}:tak dikenal}
+{sides_default?sides={sides_default}:}</TD></TR>
+</TABLE>
+
+</DIV>
diff --git a/templates/id/printers-header.tmpl b/templates/id/printers-header.tmpl
new file mode 100644 (file)
index 0000000..b1a00fc
--- /dev/null
@@ -0,0 +1 @@
+<P ALIGN="CENTER">{total=0?Tidak ada pencetak:Menampilkan {#printer_name} dari {total} pencetak{total=1?:}}.</P>
diff --git a/templates/id/printers.tmpl b/templates/id/printers.tmpl
new file mode 100644 (file)
index 0000000..3aa4d0d
--- /dev/null
@@ -0,0 +1,11 @@
+{#printer_name=0?:
+<TABLE CLASS="list" SUMMARY="Printer List">
+<THEAD>
+<TR><TH><A HREF="{THISURL}?QUERY={?QUERY}&amp;WHICH_JOBS={?WHICH_JOBS}&amp;FIRST={FIRST}&amp;ORDER={ORDER=dec?asc:dec}">{ORDER=dec?<SMALL>&#x25b2;</SMALL> Nama Antrian <SMALL>&#x25b2;</SMALL>:<SMALL>&#x25bc;</SMALL> Nama Antrian <SMALL>&#x25bc;</SMALL>}</A></TH><TH>Deskripsi</TH><TH>Lokasi</TH><TH>Pembuat dan Model</TH><TH>Status</TH></TR>
+</THEAD>
+<TBODY>
+{[printer_name]
+<TR><TD><A HREF="{printer_uri_supported}">{printer_name}</A></TD><TD>{printer_info}</TD><TD>{printer_location}</TD><TD>{printer_make_and_model}</TD><TD>{printer_state=3?Menganggur:{printer_state=4?Memproses:Berhenti}}{printer_state_message? - "{printer_state_message}":}</TD></TR>
+}
+</TBODY>
+</TABLE></DIV>}
diff --git a/templates/id/restart.tmpl b/templates/id/restart.tmpl
new file mode 100644 (file)
index 0000000..fde1b06
--- /dev/null
@@ -0,0 +1,8 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Ubah Pengaturan</H2>
+
+<P><IMG SRC="/images/wait.gif" WIDTH="16" HEIGHT="16" ALIGN="ABSMIDDLE"
+ALT="Indikator Kesibukan"> Silakan tunggu selagi server dijalankan ulang...</P>
+
+</DIV>
diff --git a/templates/id/samba-export.tmpl b/templates/id/samba-export.tmpl
new file mode 100644 (file)
index 0000000..c42f7b6
--- /dev/null
@@ -0,0 +1,54 @@
+<SCRIPT TYPE="text/javascript"><!--
+function select_printers() {
+  var list = document.export_samba.EXPORT_NAME;
+  var sel = document.export_samba.EXPORT_ALL.checked;
+
+  for (i = 0; i < list.length; i ++) {
+    list.options[i].selected = sel;
+  }
+}
+--></SCRIPT>
+
+<FORM METHOD="POST" ACTION="/admin/" NAME="export_samba">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="export-samba">
+
+<H2 CLASS="title">Ekspor Pencetak ke Samba</H2>
+
+{error?<P>Tak dapat mengekspor pencetak ke Samba\:</P>
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
+<P>Rujuklah berkas <A HREF="/admin/log/error_log"
+TARGET="_blank">error_log</A> untuk informasi lebih lanjut.</P>:
+<P>Di halaman ini, Anda dapat mengekspor pencetak untuk Samba, sehingga
+klien Windows dapat mengakses pencetak-pencetak tersebut melalui ikon
+<VAR>Network Neighborhood</VAR> atau <VAR>Network Places</VAR> yang ada
+di desktop mereka. Namun, sebelumnya Anda harus memasang penggerak
+pencetak PostScript Windows seperti yang dijelaskan pada halaman
+manual <A HREF="/help/man-cupsaddsmb.html"
+TARGET="_blank">cupsaddsmb(8)</A>.</P>}
+
+<TABLE>
+<TR>
+<TH CLASS="label">Pencetak:</TH>
+<TD>
+<SELECT NAME="EXPORT_NAME" SIZE="10" MULTIPLE>
+{[printer_name]<OPTION VALUE="{printer_name}"{export_all? SELECTED:{printer_export? SELECTED:}}>{printer_name}}
+</SELECT><BR>
+<INPUT TYPE="CHECKBOX" NAME="EXPORT_ALL"{export_all? CHECKED:}
+onChange="select_printers()"> Ekspor Semua Pencetak
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Nama Pengguna Samba:</TH>
+<TD><INPUT TYPE="TEXT" NAME="USERNAME" VALUE="{?USERNAME}"> (diperlukan)</TD>
+</TR>
+<TR>
+<TH CLASS="label">Sandi Samba:</TH>
+<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (diperlukan)</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="SUBMIT" VALUE="Ekspor Pencetak ke Samba"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/id/samba-exported.tmpl b/templates/id/samba-exported.tmpl
new file mode 100644 (file)
index 0000000..8fa8111
--- /dev/null
@@ -0,0 +1 @@
+<P>Pencetak berhasil diekspor ke Samba.</P>
diff --git a/templates/id/search.tmpl b/templates/id/search.tmpl
new file mode 100644 (file)
index 0000000..9dc2e5d
--- /dev/null
@@ -0,0 +1,10 @@
+<FORM ACTION="/{SECTION}/{?SEARCH_DEST}" METHOD="GET">
+{WHICH_JOBS?<INPUT TYPE="HIDDEN" NAME="WHICH_JOBS" VALUE="{WHICH_JOBS}">:}
+{ORDER?<INPUT TYPE="HIDDEN" NAME="ORDER" VALUE="{ORDER}">:}
+
+<P ALIGN="CENTER"><B>Cari di
+{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?Kelas:{SECTION=jobs?Tugas:Pencetak}}}:</B>
+<INPUT TYPE="SEARCH" NAME="QUERY" VALUE="{?QUERY}" SIZE="40"  PLACEHOLDER="" AUTOSAVE="org.cups.{SECTION}" RESULTS="20"> <INPUT
+TYPE="SUBMIT" VALUE="Cari"> <INPUT TYPE="SUBMIT" NAME="CLEAR" VALUE="Bersihkan"></P>
+
+</FORM>
diff --git a/templates/id/set-printer-options-header.tmpl b/templates/id/set-printer-options-header.tmpl
new file mode 100644 (file)
index 0000000..12386dc
--- /dev/null
@@ -0,0 +1,25 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Atur Opsi Baku untuk {printer_name}</H2>
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{HAVE_AUTOCONFIGURE?<INPUT TYPE="SUBMIT" NAME="AUTOCONFIGURE" VALUE="Kuiri Pencetak untuk Opsi Baku">:}
+
+<SCRIPT TYPE="text/javascript"><!--
+function update_paramtable(option)
+{
+  var cb = document.getElementById("select-" + option)
+  var paramstable = document.getElementById(option + "-params");
+  if (cb.value == "Custom")
+    paramstable.style.display = "table";
+  else
+    paramstable.style.display = "none";
+}
+--></SCRIPT>
+
+<H3 CLASS="title">{[group_id]
+<A HREF="#{group_id}">{group}</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</H3>
+
+<DIV CLASS="tabs">
diff --git a/templates/id/set-printer-options-trailer.tmpl b/templates/id/set-printer-options-trailer.tmpl
new file mode 100644 (file)
index 0000000..11adc70
--- /dev/null
@@ -0,0 +1,16 @@
+</DIV>
+
+<SCRIPT TYPE="text/javascript"><!--
+// Hide custom options parameters for browsers that understand Javascript
+var paramtables = document.getElementsByName("paramtable");
+for (var i = 0; i < paramtables.length; i++)
+{
+  var opt = paramtables[i].id.substr(0, paramtables[i].id.lastIndexOf("-"));
+  var cb = document.getElementById("select-" + opt);
+  if (cb.value != "Custom")
+    paramtables[i].style.display = "none";
+}
+--></SCRIPT>
+</FORM>
+
+</DIV>
diff --git a/templates/id/subscription-added.tmpl b/templates/id/subscription-added.tmpl
new file mode 100644 (file)
index 0000000..70abc79
--- /dev/null
@@ -0,0 +1,5 @@
+<DIV CLASS="indent">
+
+<P>Subskripsi {subscription_name} telah berhasil ditambahkan.</P>
+
+</DIV>
diff --git a/templates/id/subscription-canceled.tmpl b/templates/id/subscription-canceled.tmpl
new file mode 100644 (file)
index 0000000..ba7b0e1
--- /dev/null
@@ -0,0 +1,5 @@
+<DIV CLASS="indent">
+
+<P>Subskripsi #{notify_subscription_id} telah dibatalkan.</P>
+
+</DIV>
diff --git a/templates/id/test-page.tmpl b/templates/id/test-page.tmpl
new file mode 100644 (file)
index 0000000..5b1492e
--- /dev/null
@@ -0,0 +1,8 @@
+<DIV CLASS="indent">
+
+<H2 CLASS="title">Cetak Halaman Uji pada {printer_name}</H2>
+
+<P>Halaman uji telah dikirim; ID tugas adalah <A HREF="/{SECTION}/{printer_name}">
+{printer_name}-{job_id}</A>.</P>
+
+</DIV>
diff --git a/templates/id/trailer.tmpl b/templates/id/trailer.tmpl
new file mode 100644 (file)
index 0000000..33262f9
--- /dev/null
@@ -0,0 +1,8 @@
+</TD></TR>
+<TR><TD>&nbsp;</TD></TR>
+<TR><TD CLASS="trailer">CUPS dan logo CUPS adalah merek dagang dari
+<A HREF="http://www.apple.com">Apple Inc.</A> Hak Cipta CUPS adalah 2007-2009 Apple
+Inc. Semua hak terpelihara.</TD></TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/templates/id/users.tmpl b/templates/id/users.tmpl
new file mode 100644 (file)
index 0000000..3795d69
--- /dev/null
@@ -0,0 +1,29 @@
+<DIV CLASS="indent">
+
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{OP}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+{IS_CLASS?<INPUT TYPE="HIDDEN" NAME="IS_CLASS" VALUE="{IS_CLASS}">:}
+
+<H2 CLASS="title">Pengguna yang Diperbolehkan Bagi {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Pengguna:</TH>
+<TD>
+<INPUT TYPE='TEXT' NAME='users' SIZE='60' VALUE='{?requesting_user_name_allowed}{?requesting_user_name_denied}'>
+<BR>
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-allowed' {requesting_user_name_allowed?checked:}>Perbolehkan pengguna ini untuk mencetak
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-denied' {requesting_user_name_denied?checked:}>Larang pengguna ini untuk mencetak
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>
+<INPUT TYPE="SUBMIT" VALUE="Atur Pengguna yang Diperbolehkan">
+</TD>
+</TR>
+</TABLE>
+
+</FORM>
+</DIV>
index baf93ea29b173a2a6dde897217cfb125b717d97e..c984246790febbc081df07cf4898680d83d3fc73 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 {?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
 {?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
 
index 642e90b99d27aa0d055e29d84a9ef6d444cf3c0d..f2904cb44b9479b0d572c3fc96525b117812bbde 100644 (file)
@@ -20,7 +20,7 @@
 <H2 CLASS="title">ジョブ</H2>
 
 <P>
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="ジョブの管理"></FORM>
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="ジョブの管理"></FORM>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
index ef3066f3d5b7dfb018421ca536795b433d069e41..ff14b400be4d6a94a3ee93e2281a039896d0b9fa 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 
 <TABLE>
index f21acc5c9ecd2bfcbf125c8098e9f9ce335b4653..4f782ac803a57627b3af4bf458777ed34cd152e0 100644 (file)
@@ -1,7 +1,7 @@
 <P><B>エラー:</B> 以下のオプションは競合します:</P>
 
 <UL>
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
 }</UL>
 
 <P>競合を解決するために、1 つ以上のオプションを変更してください。</P>
index c78dc20813166ecadc2ace2269ac3e859f873e74..f0a8ea8742739501618f7fe6070d349ab0c1e3c7 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 
 <TABLE>
index 5086a649f2586deb408c418dc870c1c32ef2326d..3772295a8305afa78569a7d1aa32adc7601a43e5 100644 (file)
@@ -1,7 +1,7 @@
 <P><B>Error:</B> The following options are conflicting:</P>
 
 <UL>
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
 }</UL>
 
 <P>Please change one or more of the options to resolve the conflicts.</P>
index a8f2f592593d0327c7f46eb5ff639cfde84ccbc7..9fa76ca625cb782893ce6e3d187c77e4da7308dc 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 {?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
 {?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
 
index 5a5e828d27fada4a0a0f3d3f6408c863b7b9dd47..387f053609a6366c68e5b987ef81921b77693075 100644 (file)
@@ -20,7 +20,7 @@
 <H2 CLASS="title">Zadania</H2>
 
 <P>
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Zarządzanie zadaniami"></FORM>
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Zarządzanie zadaniami"></FORM>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
index c91943f6b0b95343a607274650e6a712127d5549..ea8718d12b6c74c74cf92e461f5f64d6d10ba990 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="Wyświetl zakończone zadania"></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="Wyświetl wszystkie zadania"></FORM>}</DIV>
 
-<P ALIGN="CENTER">{total=0?Brak zadań:Wyświetlanie {#job_id} z {total} {?which_jobs=?aktywnych:{which_jobs=wszystkich?:zakończonych}} zadań{total=1?:s}}.</P>
+<P ALIGN="CENTER">{total=0?Brak zadań:Wyświetlanie {#job_id} z {total} {?which_jobs=?aktywnych:{which_jobs=all?:zakończonych}} zadań{total=1?:s}}.</P>
index 5851a0ec975ff9133b41efd030ef93a56b2f5226..30b2c14eceb7224199929707c8381d8edb065a8e 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 
 <TABLE>
index 42aa5759d379444100f17e7ea2d42fe3e3fb1917..708ba4c2f2bf78cb3de458c04e2ea1cb0ee56e2c 100644 (file)
@@ -1,7 +1,7 @@
 <P><B>Błąd:</B> następujące opcje są w konflikcie ze sobą:</P>
 
 <UL>
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
 }</UL>
 
 <P>Proszę zmienić jedną lub więcej opcji, aby rozwiązać konflikt.</P>
index ff333e9362e094d7ef1cc7764c3e4d2af62493a0..59d6e21932dda6ce4c111f614c145a7b72029802 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 {?current_make!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE" VALUE="{current_make}">:}
 {?current_make_and_model!?<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{current_make_and_model}">:}
 
index dafb5fd965d68570d491f7116274d0d29efbc0af..9362f428c00650d03d23c61b20343ab96eda276f 100644 (file)
@@ -20,7 +20,7 @@
 <H2 CLASS="title">Задания</H2>
 
 <P>
-<FORM ACTION="/jobs/" METHDO="GET"><INPUT TYPE="SUBMIT" VALUE="Управление заданиями"></FORM>
+<FORM ACTION="/jobs/" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Управление заданиями"></FORM>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
index d1a4c0812f6dfdfddca876d8d616909a50dfd106..d9ee960432261dc2ceacc7517acdda49edc4d790 100644 (file)
@@ -1,5 +1,6 @@
 <DIV CLASS="indent">{?which_jobs=?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Показать активные задания"></FORM>}
-{?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="Завершено"><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="все"><INPUT TYPE="SUBMIT" VALUE="Показать все задания"></FORM>}</DIV>
+{?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>}</DIV>
+
+<P ALIGN="CENTER">{total=0?Нет заданий:Задание {#job_id} из {total} {?which_jobs=?активных:{which_jobs=all?:завершенных}}.</P>
 
-<P ALIGN="CENTER">{total=0?Нет заданий:Задание {#job_id} из {total} {?which_jobs=?активных:{which_jobs=всех?:завершенных}}.</P>
index b5f1e39c3e24e2648a44654610b04f49a3f1f201..74ea27c3b1c724ac8b13aaee25963c6bcb0a2335 100644 (file)
@@ -4,6 +4,10 @@
 
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 
 <TABLE>
index a3ba6395bf6d494ab9864af7fd89490654d568f6..9497fb777ce3398b0eda2faa0d569b17f06f47f1 100644 (file)
@@ -1,7 +1,7 @@
 <P><B>Ошибка:</B> следующие параметры конфликтуют:</P>
 
 <UL>
-{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A>: {cchoice}</LI>
 }</UL>
 
 <P>Измените один или несколько параметров для того, чтобы избежать конфликта.</P>
index 1917565872712bc429834546371ce7a218c16a7f..b78ea9c22a95c30a91ae2ca989d68231c44e7b9d 100755 (executable)
@@ -275,11 +275,6 @@ ln -s $root/data/*.h /tmp/cups-$user/share/ppdc
 ln -s $root/data/*.defs /tmp/cups-$user/share/ppdc
 ln -s $root/templates /tmp/cups-$user/share
 
-if test $ssltype != 0; then
-       mkdir $root/ssl
-       cp server.* $root/ssl
-fi
-
 #
 # Mac OS X filters and configuration files...
 #
@@ -437,6 +432,7 @@ fi
 
 export SHLIB_PATH
 
+CUPS_DISABLE_APPLE_DEFAULT=yes; export CUPS_DISABLE_APPLE_DEFAULT
 CUPS_SERVER=localhost:8631; export CUPS_SERVER
 CUPS_SERVERROOT=/tmp/cups-$user; export CUPS_SERVERROOT
 CUPS_STATEDIR=/tmp/cups-$user; export CUPS_STATEDIR