summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt51
-rw-r--r--CREDITS.txt5
-rw-r--r--INSTALL.txt2
-rw-r--r--Makefile7
-rw-r--r--README.txt2
-rw-r--r--backend/Makefile4
-rw-r--r--backend/ipp.c247
-rw-r--r--backend/lpd.c156
-rw-r--r--backend/pap.c119
-rw-r--r--backend/parallel.c37
-rw-r--r--backend/runloop.c16
-rw-r--r--backend/scsi-irix.c30
-rw-r--r--backend/scsi-linux.c25
-rw-r--r--backend/scsi.c9
-rw-r--r--backend/serial.c62
-rw-r--r--backend/socket.c93
-rw-r--r--backend/usb-darwin.c193
-rw-r--r--backend/usb-unix.c42
-rw-r--r--backend/usb.c22
-rw-r--r--cgi-bin/help.c1
-rw-r--r--cgi-bin/template.c42
-rw-r--r--conf/mime.convs.in4
-rw-r--r--config-scripts/cups-common.m47
-rw-r--r--config-scripts/cups-directories.m432
-rw-r--r--config.h.in11
-rw-r--r--cups/auth.c4
-rw-r--r--cups/cups.h8
-rw-r--r--cups/http-addr.c25
-rw-r--r--cups/http-private.h7
-rw-r--r--cups/language.c103
-rw-r--r--cups/localize.c72
-rw-r--r--cups/mark.c4
-rw-r--r--cups/ppd.c4
-rw-r--r--cups/test.ppd16
-rw-r--r--cups/testppd.c16
-rw-r--r--doc/Makefile4
-rw-r--r--doc/cups-printable.css5
-rw-r--r--doc/cups.css7
-rw-r--r--doc/es/index.html.in4
-rw-r--r--doc/help/spec-ppd.html1472
-rw-r--r--doc/help/translation.html21
-rw-r--r--filter/pstops.c4
-rw-r--r--filter/rastertolabel.c7
-rw-r--r--locale/Makefile20
-rw-r--r--locale/cups_da.po30
-rw-r--r--locale/cups_de.po28
-rw-r--r--locale/cups_es.po4
-rw-r--r--locale/cups_et.po880
-rw-r--r--locale/cups_fr.po96
-rw-r--r--locale/cups_he.po792
-rw-r--r--locale/cups_it.po10
-rw-r--r--locale/cups_ja.po16
-rw-r--r--locale/cups_ko.po16
-rw-r--r--locale/cups_no.po2
-rw-r--r--locale/cups_pl.po20
-rw-r--r--locale/cups_pt.po3112
-rw-r--r--locale/cups_pt_BR.po4
-rw-r--r--locale/cups_sv.po8
-rw-r--r--locale/cups_zh.po4
-rw-r--r--locale/cups_zh_TW.po6
-rw-r--r--monitor/bcp.c19
-rw-r--r--monitor/tbcp.c21
-rw-r--r--packaging/cups.list.in4
-rw-r--r--packaging/cups.spec.in4
-rw-r--r--scheduler/Makefile8
-rw-r--r--scheduler/auth.c62
-rw-r--r--scheduler/auth.h4
-rw-r--r--scheduler/client.c117
-rw-r--r--scheduler/client.h6
-rw-r--r--scheduler/conf.c4
-rw-r--r--scheduler/cups-driverd.c4
-rw-r--r--scheduler/cups-lpd.c4
-rw-r--r--scheduler/cupsfilter.c26
-rw-r--r--scheduler/ipp.c60
-rw-r--r--scheduler/job.c10
-rw-r--r--scheduler/listen.c4
-rw-r--r--scheduler/main.c16
-rw-r--r--scheduler/process.c4
-rw-r--r--scheduler/quotas.c10
-rw-r--r--scheduler/testlpd.c4
-rw-r--r--systemv/cupstestppd.c31
-rw-r--r--templates/de/admin.tmpl4
-rw-r--r--templates/es/admin.tmpl25
-rw-r--r--templates/es/classes.tmpl16
-rw-r--r--templates/es/printer-configured.tmpl2
-rw-r--r--templates/es/printers.tmpl14
-rw-r--r--templates/es/samba-export.tmpl6
-rw-r--r--templates/es/trailer.tmpl4
88 files changed, 3316 insertions, 5227 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 68404a28a..a2ff9458b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,55 @@
-CHANGES.txt - 2007-08-13
+CHANGES.txt - 2007-09-13
------------------------
+CHANGES IN CUPS V1.3.1
+
+ - Documentation updates.
+ - The USB backend on Mac OS X could hang if the driver and
+ printer did not match.
+ - Delegated Kerberos credentials were not working.
+ - "make distclean" incorrectly removed the edit-config.tmpl
+ files (STR #2508)
+ - Fix compile problem on HP-UX (STR #2501)
+ - The cupstestppd utility now tests for resolutions greater
+ than 99999 DPI to detect a missing "x" between the X and Y
+ resolutions.
+ - Fixed many problems in the various translations and added
+ a new "checkpo" utility to validate them.
+ - The cupstestppd utility now tests the custom page size code
+ for CUPS raster drivers.
+ - cupsLangDefault() did not attempt to return a language that
+ was supported by the calling application.
+ - If a remote printer stopped while a job was being sent, the
+ local queue would also get stopped and the job re-queued,
+ resulting in duplicate prints in some cases.
+ - A few Apple-specific job options needed to be omitted when
+ printing a banner page.
+ - The new peer credential support did not compile on FreeBSD
+ (STR #2495)
+ - Direct links to help files did not set the current section
+ so the table-of-contents was not shown.
+ - The configure script did not support --localedir=foo (STR #2488)
+ - The backends were not displaying their localized messages.
+ - CUPS-Authenticate-Job did not require Kerberos authentication
+ on queues protected by Kerberos.
+ - The Zebra ZPL driver did not work with Brady label printers
+ (STR #2487)
+ - Norwegian wasn't localized on Mac OS X.
+ - getnameinfo() returns an error on some systems when DNS is
+ not available, leading to numerous problems (STR #2486)
+ - The cupsfilter command did not work properly on Mac OS X.
+ - The scheduler makefile contained a typo (STR #2483)
+ - The TBCP and BCP port monitors did not handle the trailing
+ CTRL-D in some PostScript output properly.
+ - Fixed the localization instructions and German template for
+ the "Find New Printers" button (STR #2478)
+ - The web interface did not work with the Chinese localization
+ (STR #2477)
+ - The web interface home page did not work for languages that
+ were only partially localized (STR #2472)
+ - Updated the Spanish web interface localization (STR #2473)
+ - ppdLocalize() did not work for country-specific localizations.
+
CHANGES IN CUPS V1.3.0
diff --git a/CREDITS.txt b/CREDITS.txt
index 9cbf832ed..ffaa9f3aa 100644
--- a/CREDITS.txt
+++ b/CREDITS.txt
@@ -1,4 +1,4 @@
-CREDITS.txt - 2007-02-05
+CREDITS.txt - 2007-09-10
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
@@ -19,6 +19,7 @@ like to thank the following individuals for their contributions:
Till Kamppeter - Bug fixes, beta testing, evangelism.
Kenshi Muto - Japanese localization, patches, and
testing.
+ Tomohiro Kato - Japanese localization.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
Marek Laane - Estonian translation.
@@ -36,7 +37,7 @@ like to thank the following individuals for their contributions:
Opher Shachar - Hebrew localization.
Stuart Stevens - HP JetDirect IPP information.
Andrea Suatoni - IRIX desktop integration and testing.
- Tomohiro Kato - Japanese localization.
+ Teppo Turlianen - Finnish localization.
Tim Waugh - Lots of patches, testing, and Linux
integration.
Yugami - LDAP browsing support.
diff --git a/INSTALL.txt b/INSTALL.txt
index 5732830f3..24b3c3967 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -1,4 +1,4 @@
-INSTALL - CUPS v1.3.0 - 2007-08-13
+INSTALL - CUPS v1.3.1 - 2007-09-14
----------------------------------
This file describes how to compile and install CUPS from source
diff --git a/Makefile b/Makefile
index 86d47a429..62cee85c0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 6945 2007-09-12 17:08:32Z mike $"
#
# Top-level Makefile for the Common UNIX Printing System (CUPS).
#
@@ -63,9 +63,8 @@ distclean: clean
$(RM) man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
$(RM) man/cupsd.conf.man man/lpoptions.man
$(RM) packaging/cups.list
- $(RM) templates/edit-config.tmpl templates/header.tmpl
+ $(RM) templates/header.tmpl
-$(RM) doc/*/index.html
- -$(RM) templates/*/edit-config.tmpl
-$(RM) templates/*/header.tmpl
-$(RM) -r autom4te*.cache
@@ -282,5 +281,5 @@ dist: all
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 6945 2007-09-12 17:08:32Z mike $".
#
diff --git a/README.txt b/README.txt
index 48fee5a99..582250f03 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-README - CUPS v1.3.0 - 2007-08-13
+README - CUPS v1.3.1 - 2007-09-14
---------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
diff --git a/backend/Makefile b/backend/Makefile
index d6e9aee77..e02c27538 100644
--- a/backend/Makefile
+++ b/backend/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: Makefile 6778 2007-08-08 19:27:51Z mike $"
#
# Backend makefile for the Common UNIX Printing System (CUPS).
#
@@ -219,5 +219,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: Makefile 6778 2007-08-08 19:27:51Z mike $".
#
diff --git a/backend/ipp.c b/backend/ipp.c
index ed82f4d33..693a85bc8 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp.c 6687 2007-07-18 19:49:45Z mike $"
+ * "$Id: ipp.c 6911 2007-09-04 20:35:08Z mike $"
*
* IPP backend for the Common UNIX Printing System (CUPS).
*
@@ -67,12 +67,12 @@ static void cancel_job(http_t *http, const char *uri, int id,
const char *resource, const char *user, int version);
static void check_printer_state(http_t *http, const char *uri,
const char *resource, const char *user,
- int version);
+ int version, int job_id);
#ifdef HAVE_LIBZ
static void compress_files(int num_files, char **files);
#endif /* HAVE_LIBZ */
static const char *password_cb(const char *);
-static int report_printer_state(ipp_t *ipp);
+static int report_printer_state(ipp_t *ipp, int job_id);
#ifdef __APPLE__
static int run_pictwps_filter(char **argv, const char *filename);
@@ -102,9 +102,9 @@ main(int argc, /* I - Number of command-line args */
resource[1024], /* Resource info (printer name) */
addrname[256], /* Address name */
*optptr, /* Pointer to URI options */
- name[255], /* Name of option */
- value[255], /* Value of option */
- *ptr; /* Pointer into name or value */
+ *name, /* Name of option */
+ *value, /* Value of option */
+ sep; /* Separator character */
int num_files; /* Number of files to print */
char **files, /* Files to print */
*filename; /* Pointer to single filename */
@@ -199,8 +199,9 @@ main(int argc, /* I - Number of command-line args */
}
else if (argc < 6)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_STOP);
}
@@ -224,8 +225,9 @@ main(int argc, /* I - Number of command-line args */
hostname, sizeof(hostname), &port,
resource, sizeof(resource)) < HTTP_URI_OK)
{
- fputs(_("ERROR: Missing device URI on command-line and no "
- "DEVICE_URI environment variable!\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("ERROR: Missing device URI on command-line and no "
+ "DEVICE_URI environment variable!\n"));
return (CUPS_BACKEND_STOP);
}
@@ -263,29 +265,30 @@ main(int argc, /* I - Number of command-line args */
* Get the name...
*/
- for (ptr = name; *optptr && *optptr != '=';)
- if (ptr < (name + sizeof(name) - 1))
- *ptr++ = *optptr++;
- *ptr = '\0';
+ name = optptr;
- if (*optptr == '=')
+ while (*optptr && *optptr != '=' && *optptr != '+' && *optptr != '&')
+ optptr ++;
+
+ if ((sep = *optptr) != '\0')
+ *optptr++ = '\0';
+
+ if (sep == '=')
{
/*
* Get the value...
*/
- optptr ++;
-
- for (ptr = value; *optptr && *optptr != '+' && *optptr != '&';)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *optptr++;
- *ptr = '\0';
+ value = optptr;
- if (*optptr == '+' || *optptr == '&')
+ while (*optptr && *optptr != '+' && *optptr != '&')
optptr ++;
+
+ if (*optptr)
+ *optptr++ = '\0';
}
else
- value[0] = '\0';
+ value = (char *)"";
/*
* Process the option...
@@ -327,7 +330,7 @@ main(int argc, /* I - Number of command-line args */
cupsSetEncryption(HTTP_ENCRYPT_IF_REQUESTED);
else
{
- fprintf(stderr,
+ _cupsLangPrintf(stderr,
_("ERROR: Unknown encryption option value \"%s\"!\n"),
value);
}
@@ -340,7 +343,7 @@ main(int argc, /* I - Number of command-line args */
version = 1;
else
{
- fprintf(stderr,
+ _cupsLangPrintf(stderr,
_("ERROR: Unknown version option value \"%s\"!\n"),
value);
}
@@ -369,8 +372,9 @@ main(int argc, /* I - Number of command-line args */
* Unknown option...
*/
- fprintf(stderr, _("ERROR: Unknown option \"%s\" with value \"%s\"!\n"),
- name, value);
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unknown option \"%s\" with value \"%s\"!\n"),
+ name, value);
}
}
}
@@ -470,7 +474,9 @@ main(int argc, /* I - Number of command-line args */
* Try loading authentication information from the environment.
*/
- if ((ptr = getenv("AUTH_USERNAME")) != NULL)
+ const char *ptr = getenv("AUTH_USERNAME");
+
+ if (ptr)
cupsSetUser(ptr);
password = getenv("AUTH_PASSWORD");
@@ -488,8 +494,8 @@ main(int argc, /* I - Number of command-line args */
do
{
- fprintf(stderr, _("INFO: Connecting to %s on port %d...\n"),
- hostname, port);
+ _cupsLangPrintf(stderr, _("INFO: Connecting to %s on port %d...\n"),
+ hostname, port);
if ((http = httpConnectEncrypt(hostname, port, cupsEncryption())) == NULL)
{
@@ -505,8 +511,9 @@ main(int argc, /* I - Number of command-line args */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
if (argc == 6 || strcmp(filename, argv[6]))
unlink(filename);
@@ -525,16 +532,16 @@ main(int argc, /* I - Number of command-line args */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
- fputs(_("ERROR: Printer not responding!\n"), stderr);
+ _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
- fprintf(stderr,
- _("WARNING: recoverable: Network host \'%s\' is busy; will "
- "retry in %d seconds...\n"),
- hostname, delay);
+ _cupsLangPrintf(stderr,
+ _("WARNING: recoverable: Network host \'%s\' is busy; "
+ "will retry in %d seconds...\n"),
+ hostname, delay);
sleep(delay);
@@ -543,8 +550,8 @@ main(int argc, /* I - Number of command-line args */
}
else if (h_errno)
{
- fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
- hostname);
+ _cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
+ hostname);
return (CUPS_BACKEND_STOP);
}
else
@@ -552,8 +559,9 @@ main(int argc, /* I - Number of command-line args */
recoverable = 1;
fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
- fputs(_("ERROR: recoverable: Unable to connect to printer; will "
- "retry in 30 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("ERROR: recoverable: Unable to connect to printer; will "
+ "retry in 30 seconds...\n"));
sleep(30);
}
@@ -572,7 +580,7 @@ main(int argc, /* I - Number of command-line args */
}
fputs("STATE: -connecting-to-device\n", stderr);
- fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
+ _cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
#ifdef AF_INET6
if (http->hostaddr->addr.sa_family == AF_INET6)
@@ -638,18 +646,18 @@ main(int argc, /* I - Number of command-line args */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
- fputs(_("ERROR: Printer not responding!\n"), stderr);
+ _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
- fprintf(stderr,
- _("WARNING: recoverable: Network host \'%s\' is busy; will "
- "retry in %d seconds...\n"),
- hostname, delay);
+ _cupsLangPrintf(stderr,
+ _("WARNING: recoverable: Network host \'%s\' is busy; "
+ "will retry in %d seconds...\n"),
+ hostname, delay);
- report_printer_state(supported);
+ report_printer_state(supported, 0);
sleep(delay);
@@ -663,14 +671,15 @@ main(int argc, /* I - Number of command-line args */
* Switch to IPP/1.0...
*/
- fputs(_("INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer does not support IPP/1.1, trying "
+ "IPP/1.0...\n"));
version = 0;
httpReconnect(http);
}
else if (ipp_status == IPP_NOT_FOUND)
{
- fputs(_("ERROR: Destination printer does not exist!\n"), stderr);
+ _cupsLangPuts(stderr, _("ERROR: Destination printer does not exist!\n"));
if (supported)
ippDelete(supported);
@@ -679,8 +688,9 @@ main(int argc, /* I - Number of command-line args */
}
else
{
- fprintf(stderr, _("ERROR: Unable to get printer status (%s)!\n"),
- cupsLastErrorString());
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to get printer status (%s)!\n"),
+ cupsLastErrorString());
sleep(10);
}
@@ -713,7 +723,7 @@ main(int argc, /* I - Number of command-line args */
format_sup->values[i].string.text);
}
- report_printer_state(supported);
+ report_printer_state(supported, 0);
}
while (ipp_status > IPP_OK_CONFLICT);
@@ -742,8 +752,9 @@ main(int argc, /* I - Number of command-line args */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
ippDelete(supported);
httpClose(http);
@@ -944,7 +955,8 @@ main(int argc, /* I - Number of command-line args */
if (ipp_status == IPP_SERVICE_UNAVAILABLE ||
ipp_status == IPP_PRINTER_BUSY)
{
- fputs(_("INFO: Printer busy; will retry in 10 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 10 seconds...\n"));
sleep(10);
}
else if ((ipp_status == IPP_BAD_REQUEST ||
@@ -954,25 +966,28 @@ main(int argc, /* I - Number of command-line args */
* Switch to IPP/1.0...
*/
- fputs(_("INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer does not support IPP/1.1, trying "
+ "IPP/1.0...\n"));
version = 0;
httpReconnect(http);
}
else
- fprintf(stderr, _("ERROR: Print file was not accepted (%s)!\n"),
- cupsLastErrorString());
+ _cupsLangPrintf(stderr, _("ERROR: Print file was not accepted (%s)!\n"),
+ cupsLastErrorString());
}
else if ((job_id_attr = ippFindAttribute(response, "job-id",
IPP_TAG_INTEGER)) == NULL)
{
- fputs(_("NOTICE: Print file accepted - job ID unknown.\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("NOTICE: Print file accepted - job ID unknown.\n"));
job_id = 0;
}
else
{
job_id = job_id_attr->values[0].integer;
- fprintf(stderr, _("NOTICE: Print file accepted - job ID %d.\n"), job_id);
+ _cupsLangPrintf(stderr, _("NOTICE: Print file accepted - job ID %d.\n"),
+ job_id);
}
ippDelete(response);
@@ -1010,8 +1025,9 @@ main(int argc, /* I - Number of command-line args */
{
ipp_status = cupsLastError();
- fprintf(stderr, _("ERROR: Unable to add file %d to job: %s\n"),
- job_id, cupsLastErrorString());
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to add file %d to job: %s\n"),
+ job_id, cupsLastErrorString());
break;
}
}
@@ -1035,7 +1051,7 @@ main(int argc, /* I - Number of command-line args */
if (!job_id || !waitjob)
continue;
- fputs(_("INFO: Waiting for job to complete...\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Waiting for job to complete...\n"));
for (; !job_cancelled;)
{
@@ -1089,8 +1105,9 @@ main(int argc, /* I - Number of command-line args */
{
ippDelete(response);
- fprintf(stderr, _("ERROR: Unable to get job %d attributes (%s)!\n"),
- job_id, cupsLastErrorString());
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to get job %d attributes (%s)!\n"),
+ job_id, cupsLastErrorString());
break;
}
}
@@ -1124,7 +1141,7 @@ main(int argc, /* I - Number of command-line args */
* Check the printer state and report it if necessary...
*/
- check_printer_state(http, uri, resource, argv[2], version);
+ check_printer_state(http, uri, resource, argv[2], version, job_id);
/*
* Wait 10 seconds before polling again...
@@ -1145,7 +1162,7 @@ main(int argc, /* I - Number of command-line args */
* Check the printer state and report it if necessary...
*/
- check_printer_state(http, uri, resource, argv[2], version);
+ check_printer_state(http, uri, resource, argv[2], version, job_id);
/*
* Free memory...
@@ -1211,7 +1228,7 @@ cancel_job(http_t *http, /* I - HTTP connection */
ipp_t *request; /* Cancel-Job request */
- fputs(_("INFO: Canceling print job...\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Canceling print job...\n"));
request = ippNewRequest(IPP_CANCEL_JOB);
request->request.op.version[1] = version;
@@ -1231,8 +1248,8 @@ cancel_job(http_t *http, /* I - HTTP connection */
ippDelete(cupsDoRequest(http, request, resource));
if (cupsLastError() > IPP_OK_CONFLICT)
- fprintf(stderr, _("ERROR: Unable to cancel job %d: %s\n"), id,
- cupsLastErrorString());
+ _cupsLangPrintf(stderr, _("ERROR: Unable to cancel job %d: %s\n"), id,
+ cupsLastErrorString());
}
@@ -1246,7 +1263,8 @@ check_printer_state(
const char *uri, /* I - Printer URI */
const char *resource, /* I - Resource path */
const char *user, /* I - Username, if any */
- int version) /* I - IPP version */
+ int version, /* I - IPP version */
+ int job_id) /* I - Current job ID */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
@@ -1281,7 +1299,7 @@ check_printer_state(
if ((response = cupsDoRequest(http, request, resource)) != NULL)
{
- report_printer_state(response);
+ report_printer_state(response, job_id);
ippDelete(response);
}
}
@@ -1312,25 +1330,25 @@ compress_files(int num_files, /* I - Number of files */
{
if ((fd = cupsTempFd(filename, sizeof(filename))) < 0)
{
- fprintf(stderr,
- _("ERROR: Unable to create temporary compressed print file: "
- "%s\n"),
- strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to create temporary compressed print "
+ "file: %s\n"), strerror(errno));
exit(CUPS_BACKEND_FAILED);
}
if ((out = cupsFileOpenFd(fd, "w9")) == NULL)
{
- fprintf(stderr,
- _("ERROR: Unable to open temporary compressed print file: %s\n"),
- strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open temporary compressed print "
+ "file: %s\n"), strerror(errno));
exit(CUPS_BACKEND_FAILED);
}
if ((in = cupsFileOpen(files[i], "r")) == NULL)
{
- fprintf(stderr, _("ERROR: Unable to open print file \"%s\": %s\n"),
- files[i], strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open print file \"%s\": %s\n"),
+ files[i], strerror(errno));
cupsFileClose(out);
exit(CUPS_BACKEND_FAILED);
}
@@ -1339,8 +1357,9 @@ compress_files(int num_files, /* I - Number of files */
while ((bytes = cupsFileRead(in, buffer, sizeof(buffer))) > 0)
if (cupsFileWrite(out, buffer, bytes) < bytes)
{
- fprintf(stderr, _("ERROR: Unable to write %d bytes to \"%s\": %s\n"),
- (int)bytes, filename, strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to write %d bytes to \"%s\": %s\n"),
+ (int)bytes, filename, strerror(errno));
cupsFileClose(in);
cupsFileClose(out);
exit(CUPS_BACKEND_FAILED);
@@ -1408,7 +1427,8 @@ password_cb(const char *prompt) /* I - Prompt (not used) */
*/
static int /* O - Number of reasons shown */
-report_printer_state(ipp_t *ipp) /* I - IPP response */
+report_printer_state(ipp_t *ipp, /* I - IPP response */
+ int job_id) /* I - Current job ID */
{
int i; /* Looping var */
int count; /* Count of reasons shown... */
@@ -1419,6 +1439,7 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */
char unknown[1024]; /* Unknown message string */
const char *prefix; /* Prefix for STATE: line */
char state[1024]; /* State string */
+ cups_lang_t *language; /* Current localization */
if ((psm = ippFindAttribute(ipp, "printer-state-message",
@@ -1431,15 +1452,20 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */
state[0] = '\0';
prefix = "STATE: ";
+ language = cupsLangDefault();
for (i = 0, count = 0; i < reasons->num_values; i ++)
{
reason = reasons->values[i].string.text;
- strlcat(state, prefix, sizeof(state));
- strlcat(state, reason, sizeof(state));
+ if (job_id == 0 || strcmp(reason, "paused"))
+ {
+ strlcat(state, prefix, sizeof(state));
+ strlcat(state, reason, sizeof(state));
+
+ prefix = ",";
+ }
- prefix = ",";
message = "";
if (!strncmp(reason, "media-needed", 12))
@@ -1504,11 +1530,11 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */
{
count ++;
if (strstr(reasons->values[i].string.text, "error"))
- fprintf(stderr, "ERROR: %s\n", message);
+ fprintf(stderr, "ERROR: %s\n", _cupsLangString(language, message));
else if (strstr(reasons->values[i].string.text, "warning"))
- fprintf(stderr, "WARNING: %s\n", message);
+ fprintf(stderr, "WARNING: %s\n", _cupsLangString(language, message));
else
- fprintf(stderr, "INFO: %s\n", message);
+ fprintf(stderr, "INFO: %s\n", _cupsLangString(language, message));
}
}
@@ -1550,15 +1576,16 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
printer = getenv("PRINTER");
if (!printer)
{
- fputs(_("ERROR: PRINTER environment variable not defined!\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("ERROR: PRINTER environment variable not defined!\n"));
return (-1);
}
if ((ppdfile = cupsGetPPD(printer)) == NULL)
{
- fprintf(stderr,
- _("ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"),
- printer, cupsLastErrorString());
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to get PPD file for printer \"%s\" - "
+ "%s.\n"), printer, cupsLastErrorString());
}
else
{
@@ -1572,8 +1599,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
if ((fd = cupsTempFd(pstmpname, sizeof(pstmpname))) < 0)
{
- fprintf(stderr, _("ERROR: Unable to create temporary file - %s.\n"),
- strerror(errno));
+ _cupsLangPrintf(stderr, _("ERROR: Unable to create temporary file - %s.\n"),
+ strerror(errno));
if (ppdfile)
unlink(ppdfile);
return (-1);
@@ -1629,8 +1656,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
execlp("pictwpstops", printer, argv[1], argv[2], argv[3], argv[4], argv[5],
filename, NULL);
- fprintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
- strerror(errno));
+ _cupsLangPrintf(stderr, _("ERROR: Unable to exec pictwpstops: %s\n"),
+ strerror(errno));
return (errno);
}
@@ -1642,8 +1669,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
* Error!
*/
- fprintf(stderr, _("ERROR: Unable to fork pictwpstops: %s\n"),
- strerror(errno));
+ _cupsLangPrintf(stderr, _("ERROR: Unable to fork pictwpstops: %s\n"),
+ strerror(errno));
unlink(filename);
if (ppdfile)
unlink(ppdfile);
@@ -1656,8 +1683,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
if (wait(&status) < 0)
{
- fprintf(stderr, _("ERROR: Unable to wait for pictwpstops: %s\n"),
- strerror(errno));
+ _cupsLangPrintf(stderr, _("ERROR: Unable to wait for pictwpstops: %s\n"),
+ strerror(errno));
close(fd);
unlink(filename);
if (ppdfile)
@@ -1673,11 +1700,11 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
if (status)
{
if (status >= 256)
- fprintf(stderr, _("ERROR: pictwpstops exited with status %d!\n"),
- status / 256);
+ _cupsLangPrintf(stderr, _("ERROR: pictwpstops exited with status %d!\n"),
+ status / 256);
else
- fprintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
- status);
+ _cupsLangPrintf(stderr, _("ERROR: pictwpstops exited on signal %d!\n"),
+ status);
unlink(filename);
return (status);
@@ -1729,5 +1756,5 @@ sigterm_handler(int sig) /* I - Signal */
/*
- * End of "$Id: ipp.c 6687 2007-07-18 19:49:45Z mike $".
+ * End of "$Id: ipp.c 6911 2007-09-04 20:35:08Z mike $".
*/
diff --git a/backend/lpd.c b/backend/lpd.c
index 10f4b5c0b..322eebfad 100644
--- a/backend/lpd.c
+++ b/backend/lpd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: lpd.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: lpd.c 6911 2007-09-04 20:35:08Z mike $"
*
* Line Printer Daemon backend for the Common UNIX Printing System (CUPS).
*
@@ -125,9 +125,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
username[255], /* Username info */
resource[1024], /* Resource info (printer name) */
*options, /* Pointer to options */
- name[255], /* Name of option */
- value[255], /* Value of option */
- *ptr, /* Pointer into name or value */
+ *name, /* Name of option */
+ *value, /* Value of option */
+ sep, /* Separator character */
*filename, /* File to print */
title[256]; /* Title string */
int port; /* Port number */
@@ -186,8 +186,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -276,29 +277,30 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Get the name...
*/
- for (ptr = name; *options && *options != '=';)
- if (ptr < (name + sizeof(name) - 1))
- *ptr++ = *options++;
- *ptr = '\0';
+ name = options;
- if (*options == '=')
+ while (*options && *options != '=' && *options != '+' && *options != '&')
+ options ++;
+
+ if ((sep = *options) != '\0')
+ *options++ = '\0';
+
+ if (sep == '=')
{
/*
* Get the value...
*/
- options ++;
+ value = options;
- for (ptr = value; *options && *options != '+' && *options != '&';)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *options++;
- *ptr = '\0';
-
- if (*options == '+' || *options == '&')
+ while (*options && *options != '+' && *options != '&')
options ++;
+
+ if (*options)
+ *options++ = '\0';
}
else
- value[0] = '\0';
+ value = (char *)"";
/*
* Process the option...
@@ -322,8 +324,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (strchr("cdfglnoprtv", value[0]))
format = value[0];
else
- fprintf(stderr, _("ERROR: Unknown format character \"%c\"\n"),
- value[0]);
+ _cupsLangPrintf(stderr, _("ERROR: Unknown format character \"%c\"\n"),
+ value[0]);
}
else if (!strcasecmp(name, "mode") && value[0])
{
@@ -336,7 +338,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
else if (!strcasecmp(value, "stream"))
mode = MODE_STREAM;
else
- fprintf(stderr, _("ERROR: Unknown print mode \"%s\"\n"), value);
+ _cupsLangPrintf(stderr, _("ERROR: Unknown print mode \"%s\"\n"),
+ value);
}
else if (!strcasecmp(name, "order") && value[0])
{
@@ -349,7 +352,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
else if (!strcasecmp(value, "data,control"))
order = ORDER_DATA_CONTROL;
else
- fprintf(stderr, _("ERROR: Unknown file order \"%s\"\n"), value);
+ _cupsLangPrintf(stderr, _("ERROR: Unknown file order \"%s\"\n"),
+ value);
}
else if (!strcasecmp(name, "reserve"))
{
@@ -457,8 +461,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (fd == -1)
{
- fprintf(stderr, _("ERROR: Unable to open print file %s: %s\n"),
- filename, strerror(errno));
+ _cupsLangPrintf(stderr, _("ERROR: Unable to open print file %s: %s\n"),
+ filename, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -476,6 +480,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* the remote end...
*/
+ char *ptr;
+
for (ptr = title; *ptr; ptr ++)
if (!isalnum(*ptr & 255) && !isspace(*ptr & 255))
*ptr = '_';
@@ -585,9 +591,9 @@ lpd_command(int fd, /* I - Socket connection to LPD host */
if (recv(fd, &status, 1, 0) < 1)
{
- fprintf(stderr,
- _("WARNING: Remote host did not respond with command status "
- "byte after %d seconds!\n"), timeout);
+ _cupsLangPrintf(stderr,
+ _("WARNING: Remote host did not respond with command "
+ "status byte after %d seconds!\n"), timeout);
status = errno;
}
@@ -668,7 +674,8 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
{
- fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"), hostname);
+ _cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
+ hostname);
return (CUPS_BACKEND_STOP);
}
@@ -690,9 +697,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
*/
fputs("STATE: +connecting-to-device\n", stderr);
- fprintf(stderr,
- _("INFO: Attempting to connect to host %s for printer %s\n"),
- hostname, printer);
+ _cupsLangPrintf(stderr,
+ _("INFO: Attempting to connect to host %s for printer %s\n"),
+ hostname, printer);
for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist,
delay = 5;;
@@ -791,8 +798,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
httpAddrFreeList(addrlist);
@@ -810,16 +818,15 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
- fputs(_("ERROR: Printer not responding!\n"), stderr);
+ _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
- fprintf(stderr,
- _("WARNING: recoverable: Network host \'%s\' is busy; will "
- "retry in %d seconds...\n"),
- hostname, delay);
+ _cupsLangPrintf(stderr,
+ _("WARNING: recoverable: Network host \'%s\' is busy; "
+ "will retry in %d seconds...\n"), hostname, delay);
sleep(delay);
@@ -839,8 +846,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
recoverable = 1;
fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
- fputs(_("ERROR: recoverable: Unable to connect to printer; will "
- "retry in 30 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("ERROR: recoverable: Unable to connect to printer; "
+ "will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -858,7 +866,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
fputs("STATE: -connecting-to-device\n", stderr);
- fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
+ _cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
#ifdef AF_INET6
if (addr->addr.addr.sa_family == AF_INET6)
@@ -964,8 +972,8 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
return (CUPS_BACKEND_FAILED);
}
- fprintf(stderr, _("INFO: Sending control file (%u bytes)\n"),
- (unsigned)strlen(control));
+ _cupsLangPrintf(stderr, _("INFO: Sending control file (%u bytes)\n"),
+ (unsigned)strlen(control));
if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
{
@@ -978,9 +986,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if (read(fd, &status, 1) < 1)
{
- fprintf(stderr,
- _("WARNING: Remote host did not respond with control "
- "status byte after %d seconds!\n"), timeout);
+ _cupsLangPrintf(stderr,
+ _("WARNING: Remote host did not respond with control "
+ "status byte after %d seconds!\n"), timeout);
status = errno;
}
@@ -988,11 +996,11 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
if (status != 0)
- fprintf(stderr,
- _("ERROR: Remote host did not accept control file (%d)\n"),
- status);
+ _cupsLangPrintf(stderr,
+ _("ERROR: Remote host did not accept control file "
+ "(%d)\n"), status);
else
- fputs(_("INFO: Control file sent successfully\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Control file sent successfully\n"));
}
else
status = 0;
@@ -1013,13 +1021,13 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
return (CUPS_BACKEND_FAILED);
}
- fprintf(stderr,
+ _cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
- _("INFO: Sending data file (%lld bytes)\n"),
+ _("INFO: Sending data file (%lld bytes)\n"),
#else
- _("INFO: Sending data file (%ld bytes)\n"),
+ _("INFO: Sending data file (%ld bytes)\n"),
#endif /* HAVE_LONG_LONG */
- CUPS_LLCAST filestats.st_size);
+ CUPS_LLCAST filestats.st_size);
tbytes = 0;
for (copy = 0; copy < manual_copies; copy ++)
@@ -1028,8 +1036,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
while ((nbytes = read(print_fd, buffer, sizeof(buffer))) > 0)
{
- fprintf(stderr, _("INFO: Spooling LPR job, %.0f%% complete...\n"),
- 100.0 * tbytes / filestats.st_size);
+ _cupsLangPrintf(stderr,
+ _("INFO: Spooling LPR job, %.0f%% complete...\n"),
+ 100.0 * tbytes / filestats.st_size);
if (lpd_write(fd, buffer, nbytes) < nbytes)
{
@@ -1063,9 +1072,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if (recv(fd, &status, 1, 0) < 1)
{
- fprintf(stderr,
- _("WARNING: Remote host did not respond with data "
- "status byte after %d seconds!\n"), timeout);
+ _cupsLangPrintf(stderr,
+ _("WARNING: Remote host did not respond with data "
+ "status byte after %d seconds!\n"), timeout);
status = 0;
}
@@ -1076,10 +1085,11 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
status = 0;
if (status != 0)
- fprintf(stderr, _("ERROR: Remote host did not accept data file (%d)\n"),
- status);
+ _cupsLangPrintf(stderr,
+ _("ERROR: Remote host did not accept data file (%d)\n"),
+ status);
else
- fputs(_("INFO: Data file sent successfully\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Data file sent successfully\n"));
}
if (status == 0 && order == ORDER_DATA_CONTROL)
@@ -1093,8 +1103,8 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
return (CUPS_BACKEND_FAILED);
}
- fprintf(stderr, _("INFO: Sending control file (%lu bytes)\n"),
- (unsigned long)strlen(control));
+ _cupsLangPrintf(stderr, _("INFO: Sending control file (%lu bytes)\n"),
+ (unsigned long)strlen(control));
if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
{
@@ -1107,9 +1117,9 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
if (read(fd, &status, 1) < 1)
{
- fprintf(stderr,
- _("WARNING: Remote host did not respond with control "
- "status byte after %d seconds!\n"), timeout);
+ _cupsLangPrintf(stderr,
+ _("WARNING: Remote host did not respond with control "
+ "status byte after %d seconds!\n"), timeout);
status = errno;
}
@@ -1117,11 +1127,11 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
}
if (status != 0)
- fprintf(stderr,
- _("ERROR: Remote host did not accept control file (%d)\n"),
- status);
+ _cupsLangPrintf(stderr,
+ _("ERROR: Remote host did not accept control file "
+ "(%d)\n"), status);
else
- fputs(_("INFO: Control file sent successfully\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Control file sent successfully\n"));
}
/*
@@ -1305,5 +1315,5 @@ sigterm_handler(int sig) /* I - Signal */
/*
- * End of "$Id: lpd.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: lpd.c 6911 2007-09-04 20:35:08Z mike $".
*/
diff --git a/backend/pap.c b/backend/pap.c
index 79ce16058..7f04214fa 100644
--- a/backend/pap.c
+++ b/backend/pap.c
@@ -1,5 +1,5 @@
/*
-* "$Id: pap.c 6559 2007-06-18 21:09:03Z mike $"
+* "$Id: pap.c 6911 2007-09-04 20:35:08Z mike $"
*
* Copyright 2004 Apple Computer, Inc. All rights reserved.
*
@@ -242,7 +242,9 @@ int main (int argc, const char * argv[])
/* Try to open the print file... */
if ((fp = fopen(argv[6], "rb")) == NULL)
{
- fprintf(stderr, "ERROR: unable to open print file \"%s\": %s\n", argv[6], strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open print file \"%s\": %s\n"),
+ argv[6], strerror(errno));
return (1);
}
@@ -1363,9 +1365,9 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
*resourcePtr,
*typePtr,
*options, /* Pointer to options */
- optionName[255], /* Name of option */
- value[255], /* Value of option */
- *ptr; /* Pointer into name or value */
+ *optionName, /* Name of option */
+ *value, /* Value of option */
+ sep; /* Separator character */
int port; /* Port number (not used) */
int statusInterval; /* */
@@ -1393,53 +1395,54 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
while (*options != '\0')
{
- /*
+ /*
* Get the name...
*/
- for (ptr = optionName; *options && *options != '=' && *options != '+'; )
- *ptr++ = *options++;
- *ptr = '\0';
- value[0] = '\0';
+ optionName = options;
- if (*options == '=')
- {
- /*
- * Get the value...
- */
-
+ while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
-
- for (ptr = value; *options && *options != '+';)
- *ptr++ = *options++;
-
- *ptr = '\0';
-
- if (*options == '+')
- options ++;
- }
- else if (*options == '+')
+
+ if ((sep = *options) != '\0')
+ *options++ = '\0';
+
+ if (sep == '=')
{
- options ++;
+ /*
+ * Get the value...
+ */
+
+ value = options;
+
+ while (*options && *options != '+' && *options != '&')
+ options ++;
+
+ if (*options)
+ *options++ = '\0';
}
+ else
+ value = (char *)"";
- /*
+ /*
* Process the option...
*/
- if (strcasecmp(optionName, "waiteof") == 0)
+
+ if (!strcasecmp(optionName, "waiteof"))
{
- /*
- * Set the banner...
+ /*
+ * Wait for the end of the print file?
*/
- if (strcasecmp(value, "on") == 0 ||
- strcasecmp(value, "yes") == 0 ||
- strcasecmp(value, "true") == 0)
+
+ if (!strcasecmp(value, "on") ||
+ !strcasecmp(value, "yes") ||
+ !strcasecmp(value, "true"))
{
gWaitEOF = true;
}
- else if (strcasecmp(value, "off") == 0 ||
- strcasecmp(value, "no") == 0 ||
- strcasecmp(value, "false") == 0)
+ else if (!strcasecmp(value, "off") ||
+ !strcasecmp(value, "no") ||
+ !strcasecmp(value, "false"))
{
gWaitEOF = false;
}
@@ -1448,13 +1451,17 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
fprintf(stderr, "WARNING: Boolean expected for waiteof option \"%s\"\n", value);
}
}
- else if (strcasecmp(optionName, "status") == 0)
+ else if (!strcasecmp(optionName, "status"))
{
+ /*
+ * Set status reporting interval...
+ */
+
statusInterval = atoi(value);
- if (value[0] < '0' || value[0] > '9' ||
- statusInterval < 0)
+ if (value[0] < '0' || value[0] > '9' || statusInterval < 0)
{
- fprintf(stderr, "WARNING: number expected for status option \"%s\"\n", value);
+ fprintf(stderr, "WARNING: number expected for status option \"%s\"\n",
+ value);
}
else
{
@@ -1469,20 +1476,24 @@ static int parseUri(const char* argv0, char* name, char* type, char* zone)
if (*resourcePtr == '/')
resourcePtr++;
- /* If the resource has a slash we assume the slash seperates the AppleTalk object
- * name from the AppleTalk type. If the slash is not present we assume the AppleTalk
- * type is LaserWriter.
- */
- typePtr = strchr(resourcePtr, '/');
- if (typePtr != NULL) {
- *typePtr++ = '\0';
- } else {
- typePtr = "LaserWriter";
- }
+ /* If the resource has a slash we assume the slash seperates the AppleTalk object
+ * name from the AppleTalk type. If the slash is not present we assume the AppleTalk
+ * type is LaserWriter.
+ */
+
+ typePtr = strchr(resourcePtr, '/');
+ if (typePtr != NULL)
+ {
+ *typePtr++ = '\0';
+ }
+ else
+ {
+ typePtr = "LaserWriter";
+ }
- removePercentEscapes(hostname, zone, NBP_NVE_STR_SIZE + 1);
- removePercentEscapes(resourcePtr, name, NBP_NVE_STR_SIZE + 1);
- removePercentEscapes(typePtr, type, NBP_NVE_STR_SIZE + 1);
+ removePercentEscapes(hostname, zone, NBP_NVE_STR_SIZE + 1);
+ removePercentEscapes(resourcePtr, name, NBP_NVE_STR_SIZE + 1);
+ removePercentEscapes(typePtr, type, NBP_NVE_STR_SIZE + 1);
return 0;
}
diff --git a/backend/parallel.c b/backend/parallel.c
index febedf6f9..673e6a4c6 100644
--- a/backend/parallel.c
+++ b/backend/parallel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: parallel.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: parallel.c 6835 2007-08-22 18:34:34Z mike $"
*
* Parallel port backend for the Common UNIX Printing System (CUPS).
*
@@ -122,8 +122,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -213,8 +214,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -227,19 +229,22 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (errno == EBUSY)
{
- fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT)
{
- fputs(_("INFO: Printer not connected; will retry in 30 seconds...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer not connected; will retry in 30 "
+ "seconds...\n"));
sleep(30);
}
else
{
- fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
- resource, strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open device file \"%s\": %s\n"),
+ resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -279,13 +284,13 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
if (print_fd != 0 && tbytes >= 0)
- fprintf(stderr,
+ _cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
- _("INFO: Sent print file, %lld bytes...\n"),
+ _("INFO: Sent print file, %lld bytes...\n"),
#else
- _("INFO: Sent print file, %ld bytes...\n"),
+ _("INFO: Sent print file, %ld bytes...\n"),
#endif /* HAVE_LONG_LONG */
- CUPS_LLCAST tbytes);
+ CUPS_LLCAST tbytes);
}
/*
@@ -613,7 +618,7 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
- fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+ _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
return;
}
@@ -662,5 +667,5 @@ side_cb(int print_fd, /* I - Print file */
/*
- * End of "$Id: parallel.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: parallel.c 6835 2007-08-22 18:34:34Z mike $".
*/
diff --git a/backend/runloop.c b/backend/runloop.c
index a3499e95f..0cd38bb61 100644
--- a/backend/runloop.c
+++ b/backend/runloop.c
@@ -1,5 +1,5 @@
/*
- * "$Id: runloop.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: runloop.c 6835 2007-08-22 18:34:34Z mike $"
*
* Common run loop APIs for the Common UNIX Printing System (CUPS).
*
@@ -118,8 +118,8 @@ backendDrainOutput(int print_fd, /* I - Print file descriptor */
if (errno != ENOSPC && errno != ENXIO && errno != EAGAIN &&
errno != EINTR && errno != ENOTTY)
{
- fprintf(stderr, _("ERROR: Unable to write print data: %s\n"),
- strerror(errno));
+ _cupsLangPrintf(stderr, _("ERROR: Unable to write print data: %s\n"),
+ strerror(errno));
return (-1);
}
}
@@ -230,7 +230,7 @@ backendRunLoop(
if (errno == ENXIO && offline != 1)
{
fputs("STATE: +offline-error\n", stderr);
- fputs(_("INFO: Printer is currently off-line.\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
offline = 1;
}
else if (errno == EINTR && total_bytes == 0)
@@ -321,7 +321,7 @@ backendRunLoop(
if (paperout != 1)
{
fputs("STATE: +media-empty-error\n", stderr);
- fputs(_("ERROR: Out of paper!\n"), stderr);
+ _cupsLangPuts(stderr, _("ERROR: Out of paper!\n"));
paperout = 1;
}
}
@@ -330,7 +330,7 @@ backendRunLoop(
if (offline != 1)
{
fputs("STATE: +offline-error\n", stderr);
- fputs(_("INFO: Printer is currently off-line.\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
offline = 1;
}
}
@@ -352,7 +352,7 @@ backendRunLoop(
if (offline)
{
fputs("STATE: -offline-error\n", stderr);
- fputs(_("INFO: Printer is now on-line.\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Printer is now on-line.\n"));
offline = 0;
}
@@ -374,5 +374,5 @@ backendRunLoop(
/*
- * End of "$Id: runloop.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: runloop.c 6835 2007-08-22 18:34:34Z mike $".
*/
diff --git a/backend/scsi-irix.c b/backend/scsi-irix.c
index 3b3e43b0d..b3b267651 100644
--- a/backend/scsi-irix.c
+++ b/backend/scsi-irix.c
@@ -1,5 +1,5 @@
/*
- * "$Id: scsi-irix.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: scsi-irix.c 6835 2007-08-22 18:34:34Z mike $"
*
* IRIX SCSI printer support for the Common UNIX Printing System (CUPS).
*
@@ -96,7 +96,8 @@ print_device(const char *resource, /* I - SCSI device */
if (strncmp(resource, "/dev/scsi/", 10) != 0)
{
- fprintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"), resource);
+ _cupsLangPrintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"),
+ resource);
return (CUPS_BACKEND_STOP);
}
@@ -119,8 +120,9 @@ print_device(const char *resource, /* I - SCSI device */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -133,13 +135,15 @@ print_device(const char *resource, /* I - SCSI device */
if (errno != EAGAIN && errno != EBUSY)
{
- fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
- resource, strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open device file \"%s\": %s\n"),
+ resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
else
{
- fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -201,9 +205,9 @@ print_device(const char *resource, /* I - SCSI device */
if (ioctl(scsi_fd, DS_ENTER, &scsi_req) < 0 ||
scsi_req.ds_status != 0)
{
- fprintf(stderr,
- _("WARNING: SCSI command timed out (%d); retrying...\n"),
- scsi_req.ds_status);
+ _cupsLangPrintf(stderr,
+ _("WARNING: SCSI command timed out (%d); "
+ "retrying...\n"), scsi_req.ds_status);
sleep(try + 1);
}
else
@@ -211,8 +215,8 @@ print_device(const char *resource, /* I - SCSI device */
if (try >= 10)
{
- fprintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
- scsi_req.ds_status);
+ _cupsLangPrintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
+ scsi_req.ds_status);
close(scsi_fd);
return (CUPS_BACKEND_FAILED);
}
@@ -232,5 +236,5 @@ print_device(const char *resource, /* I - SCSI device */
/*
- * End of "$Id: scsi-irix.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: scsi-irix.c 6835 2007-08-22 18:34:34Z mike $".
*/
diff --git a/backend/scsi-linux.c b/backend/scsi-linux.c
index dbd1c7085..e7017e572 100644
--- a/backend/scsi-linux.c
+++ b/backend/scsi-linux.c
@@ -1,5 +1,5 @@
/*
- * "$Id: scsi-linux.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: scsi-linux.c 6835 2007-08-22 18:34:34Z mike $"
*
* Linux SCSI printer support for the Common UNIX Printing System (CUPS).
*
@@ -110,7 +110,8 @@ print_device(const char *resource, /* I - SCSI device */
if (strncmp(resource, "/dev/sg", 7) != 0)
{
- fprintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"), resource);
+ _cupsLangPrintf(stderr, _("ERROR: Bad SCSI device file \"%s\"!\n"),
+ resource);
return (CUPS_BACKEND_STOP);
}
@@ -148,13 +149,15 @@ print_device(const char *resource, /* I - SCSI device */
if (errno != EAGAIN && errno != EBUSY)
{
- fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
- resource, strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open device file \"%s\": %s\n"),
+ resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
else
{
- fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -220,9 +223,9 @@ print_device(const char *resource, /* I - SCSI device */
if (ioctl(scsi_fd, SG_IO, &scsi_req) < 0 ||
scsi_req.status != 0)
{
- fprintf(stderr,
- _("WARNING: SCSI command timed out (%d); retrying...\n"),
- scsi_req.status);
+ _cupsLangPrintf(stderr,
+ _("WARNING: SCSI command timed out (%d); "
+ "retrying...\n"), scsi_req.status);
sleep(try + 1);
}
else
@@ -230,8 +233,8 @@ print_device(const char *resource, /* I - SCSI device */
if (try >= 10)
{
- fprintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
- scsi_req.status);
+ _cupsLangPrintf(stderr, _("ERROR: Unable to send print data (%d)\n"),
+ scsi_req.status);
close(scsi_fd);
return (CUPS_BACKEND_FAILED);
}
@@ -252,5 +255,5 @@ print_device(const char *resource, /* I - SCSI device */
/*
- * End of "$Id: scsi-linux.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: scsi-linux.c 6835 2007-08-22 18:34:34Z mike $".
*/
diff --git a/backend/scsi.c b/backend/scsi.c
index df525618b..b08673167 100644
--- a/backend/scsi.c
+++ b/backend/scsi.c
@@ -1,5 +1,5 @@
/*
- * "$Id: scsi.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: scsi.c 6835 2007-08-22 18:34:34Z mike $"
*
* SCSI printer backend for the Common UNIX Printing System (CUPS).
*
@@ -153,8 +153,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -224,5 +225,5 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
/*
- * End of "$Id: scsi.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: scsi.c 6835 2007-08-22 18:34:34Z mike $".
*/
diff --git a/backend/serial.c b/backend/serial.c
index 52ee566cd..864100149 100644
--- a/backend/serial.c
+++ b/backend/serial.c
@@ -1,5 +1,5 @@
/*
- * "$Id: serial.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: serial.c 6911 2007-09-04 20:35:08Z mike $"
*
* Serial port backend for the Common UNIX Printing System (CUPS).
*
@@ -104,9 +104,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (device and options) */
*options, /* Pointer to options */
- name[255], /* Name of option */
- value[255], /* Value of option */
- *ptr; /* Pointer into name or value */
+ *name, /* Name of option */
+ *value, /* Value of option */
+ sep; /* Option separator */
int port; /* Port number (not used) */
int copies; /* Number of copies to print */
int print_fd, /* Print file */
@@ -161,8 +161,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -234,8 +235,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -248,13 +250,15 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (errno == EBUSY)
{
- fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
else
{
- fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
- resource, strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open device file \"%s\": %s\n"),
+ resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -285,29 +289,30 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Get the name...
*/
- for (ptr = name; *options && *options != '=';)
- if (ptr < (name + sizeof(name) - 1))
- *ptr++ = *options++;
- *ptr = '\0';
+ name = options;
- if (*options == '=')
+ while (*options && *options != '=' && *options != '+' && *options != '&')
+ options ++;
+
+ if ((sep = *options) != '\0')
+ *options++ = '\0';
+
+ if (sep == '=')
{
/*
* Get the value...
*/
- options ++;
-
- for (ptr = value; *options && *options != '+' && *options != '&';)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *options++;
- *ptr = '\0';
+ value = options;
- if (*options == '+' || *options == '&')
+ while (*options && *options != '+' && *options != '&')
options ++;
+
+ if (*options)
+ *options++ = '\0';
}
else
- value[0] = '\0';
+ value = (char *)"";
/*
* Process the option...
@@ -370,8 +375,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
break;
# endif /* B230400 */
default :
- fprintf(stderr, _("WARNING: Unsupported baud rate %s!\n"),
- value);
+ _cupsLangPrintf(stderr, _("WARNING: Unsupported baud rate %s!\n"),
+ value);
break;
}
#endif /* B19200 == 19200 */
@@ -1247,7 +1252,8 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
- fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("WARNING: Failed to read side-channel request!\n"));
return;
}
@@ -1280,5 +1286,5 @@ side_cb(int print_fd, /* I - Print file */
/*
- * End of "$Id: serial.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: serial.c 6911 2007-09-04 20:35:08Z mike $".
*/
diff --git a/backend/socket.c b/backend/socket.c
index 06790d96c..6efcbf2f2 100644
--- a/backend/socket.c
+++ b/backend/socket.c
@@ -1,5 +1,5 @@
/*
- * "$Id: socket.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: socket.c 6911 2007-09-04 20:35:08Z mike $"
*
* AppSocket backend for the Common UNIX Printing System (CUPS).
*
@@ -68,9 +68,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (not used) */
*options, /* Pointer to options */
- name[255], /* Name of option */
- value[255], /* Value of option */
- *ptr; /* Pointer into name or value */
+ *name, /* Name of option */
+ *value, /* Value of option */
+ sep; /* Option separator */
int print_fd; /* Print file */
int copies; /* Number of copies to print */
time_t start_time; /* Time of first connect */
@@ -83,7 +83,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
int device_fd; /* AppSocket */
int error; /* Error code (if any) */
http_addrlist_t *addrlist, /* Address list */
- *addr; /* Connected address */
+ *addr; /* Connected address */
char addrname[256]; /* Address name */
ssize_t tbytes; /* Total number of bytes written */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
@@ -122,8 +122,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -190,29 +191,30 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Get the name...
*/
- for (ptr = name; *options && *options != '=';)
- if (ptr < (name + sizeof(name) - 1))
- *ptr++ = *options++;
- *ptr = '\0';
+ name = options;
- if (*options == '=')
+ while (*options && *options != '=' && *options != '+' && *options != '&')
+ options ++;
+
+ if ((sep = *options) != '\0')
+ *options++ = '\0';
+
+ if (sep == '=')
{
/*
* Get the value...
*/
- options ++;
-
- for (ptr = value; *options && *options != '+' && *options != '&';)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *options++;
- *ptr = '\0';
+ value = options;
- if (*options == '+' || *options == '&')
+ while (*options && *options != '+' && *options != '&')
options ++;
+
+ if (*options)
+ *options++ = '\0';
}
else
- value[0] = '\0';
+ value = (char *)"";
/*
* Process the option...
@@ -250,12 +252,14 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
{
- fprintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"), hostname);
+ _cupsLangPrintf(stderr, _("ERROR: Unable to locate printer \'%s\'!\n"),
+ hostname);
return (CUPS_BACKEND_STOP);
}
- fprintf(stderr, _("INFO: Attempting to connect to host %s on port %d\n"),
- hostname, port);
+ _cupsLangPrintf(stderr,
+ _("INFO: Attempting to connect to host %s on port %d\n"),
+ hostname, port);
fputs("STATE: +connecting-to-device\n", stderr);
@@ -275,8 +279,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -292,16 +297,16 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
- fputs(_("ERROR: Printer not responding!\n"), stderr);
+ _cupsLangPuts(stderr, _("ERROR: Printer not responding!\n"));
return (CUPS_BACKEND_FAILED);
}
recoverable = 1;
- fprintf(stderr,
- _("WARNING: recoverable: Network host \'%s\' is busy; will "
- "retry in %d seconds...\n"),
- hostname, delay);
+ _cupsLangPrintf(stderr,
+ _("WARNING: recoverable: Network host \'%s\' is busy; "
+ "will retry in %d seconds...\n"),
+ hostname, delay);
sleep(delay);
@@ -312,9 +317,11 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
{
recoverable = 1;
- fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(errno));
- fputs(_("ERROR: recoverable: Unable to connect to printer; will "
- "retry in 30 seconds...\n"), stderr);
+ _cupsLangPrintf(stderr, "DEBUG: Connection error: %s\n",
+ strerror(errno));
+ _cupsLangPuts(stderr,
+ _("ERROR: recoverable: Unable to connect to printer; "
+ "will retry in 30 seconds...\n"));
sleep(30);
}
}
@@ -335,7 +342,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
fputs("STATE: -connecting-to-device\n", stderr);
- fprintf(stderr, _("INFO: Connected to %s...\n"), hostname);
+ _cupsLangPrintf(stderr, _("INFO: Connected to %s...\n"), hostname);
#ifdef AF_INET6
if (addr->addr.addr.sa_family == AF_INET6)
@@ -368,13 +375,13 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
tbytes = backendRunLoop(print_fd, device_fd, 1, side_cb);
if (print_fd != 0 && tbytes >= 0)
- fprintf(stderr,
+ _cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
- _("INFO: Sent print file, %lld bytes...\n"),
+ _("INFO: Sent print file, %lld bytes...\n"),
#else
- _("INFO: Sent print file, %ld bytes...\n"),
+ _("INFO: Sent print file, %ld bytes...\n"),
#endif /* HAVE_LONG_LONG */
- CUPS_LLCAST tbytes);
+ CUPS_LLCAST tbytes);
}
/*
@@ -389,8 +396,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Shutdown the socket and wait for the other end to finish...
*/
- fputs(_("INFO: Print file sent, waiting for printer to finish...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Print file sent, waiting for printer to finish...\n"));
shutdown(device_fd, 1);
@@ -413,7 +420,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
close(print_fd);
if (tbytes >= 0)
- fputs(_("INFO: Ready to print.\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Ready to print.\n"));
return (tbytes < 0 ? CUPS_BACKEND_FAILED : CUPS_BACKEND_OK);
}
@@ -439,7 +446,7 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
- fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+ _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
return;
}
@@ -526,5 +533,5 @@ wait_bc(int device_fd, /* I - Socket */
/*
- * End of "$Id: socket.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: socket.c 6911 2007-09-04 20:35:08Z mike $".
*/
diff --git a/backend/usb-darwin.c b/backend/usb-darwin.c
index dc628fea3..efce4826d 100644
--- a/backend/usb-darwin.c
+++ b/backend/usb-darwin.c
@@ -1,7 +1,7 @@
/*
-* "$Id: usb-darwin.c 6680 2007-07-16 18:46:16Z mike $"
+* "$Id: usb-darwin.c 6953 2007-09-13 22:41:21Z mike $"
*
-* Copyright 2005-2007 Apple Inc. All rights reserved.
+* Copyright � 2005-2007 Apple Inc. All rights reserved.
*
* IMPORTANT: This Apple software is supplied to you by Apple Computer,
* Inc. ("Apple") in consideration of your agreement to the following
@@ -267,7 +267,7 @@ static void copy_devicestring(io_service_t usbInterface, CFStringRef *deviceID,
static void device_added(void *userdata, io_iterator_t iterator);
static void get_device_id(cups_sc_status_t *status, char *data, int *datalen);
static void iterate_printers(iterator_callback_t callBack, void *userdata);
-static void parse_options(const char *options, char *serial, int serial_size, UInt32 *location, Boolean *wait_eof);
+static void parse_options(char *options, char *serial, int serial_size, UInt32 *location, Boolean *wait_eof);
static void release_deviceinfo(CFStringRef *make, CFStringRef *model, CFStringRef *serial);
static void setup_cfLanguage(void);
static void soft_reset();
@@ -304,7 +304,7 @@ int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
- const char *options, /* I - Device options/serial number */
+ char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
@@ -313,7 +313,8 @@ print_device(const char *uri, /* I - Device URI */
char serial[1024]; /* Serial number buffer */
OSStatus status; /* Function results */
pthread_t read_thread_id, /* Read thread */
- sidechannel_thread_id;/* Side channel thread */
+ sidechannel_thread_id;/* Side-channel thread */
+ int sidechannel_started = 0;/* Was the side-channel thread started? */
char print_buffer[8192], /* Print data buffer */
*print_ptr; /* Pointer into print data buffer */
UInt32 location; /* Unique location in bus topology */
@@ -327,6 +328,7 @@ print_device(const char *uri, /* I - Device URI */
stimeout; /* Timeout for select() */
struct timespec cond_timeout; /* pthread condition timeout */
+
setup_cfLanguage();
parse_options(options, serial, sizeof(serial), &location, &g.wait_eof);
@@ -387,7 +389,7 @@ print_device(const char *uri, /* I - Device URI */
strlcpy(print_buffer, "USB class driver", sizeof(print_buffer));
fputs("STATE: +apple-missing-usbclassdriver-error\n", stderr);
- fprintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
+ _cupsLangPrintf(stderr, _("FATAL: Could not load %s\n"), print_buffer);
if (driverBundlePath)
CFRelease(driverBundlePath);
@@ -404,7 +406,8 @@ print_device(const char *uri, /* I - Device URI */
countdown -= PRINTER_POLLING_INTERVAL;
if (countdown <= 0)
{
- fprintf(stderr, _("INFO: Printer busy (status:0x%08x)\n"), (int)status);
+ _cupsLangPrintf(stderr, _("INFO: Printer busy (status:0x%08x)\n"),
+ (int)status);
countdown = SUBSEQUENT_LOG_INTERVAL; /* subsequent log entries, every 15 seconds */
}
}
@@ -456,9 +459,11 @@ print_device(const char *uri, /* I - Device URI */
if (pthread_create(&sidechannel_thread_id, NULL, sidechannel_thread, NULL))
{
- fputs(_("WARNING: Couldn't create side channel\n"), stderr);
+ _cupsLangPuts(stderr, _("WARNING: Couldn't create side channel\n"));
return CUPS_BACKEND_STOP;
}
+
+ sidechannel_started = 1;
}
/*
@@ -473,7 +478,7 @@ print_device(const char *uri, /* I - Device URI */
if (pthread_create(&read_thread_id, NULL, read_thread, NULL))
{
- fputs(_("WARNING: Couldn't create read channel\n"), stderr);
+ _cupsLangPuts(stderr, _("WARNING: Couldn't create read channel\n"));
return CUPS_BACKEND_STOP;
}
@@ -488,7 +493,7 @@ print_device(const char *uri, /* I - Device URI */
while (status == noErr && copies-- > 0)
{
- fputs(_("INFO: Sending data\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Sending data\n"));
if (print_fd != STDIN_FILENO)
{
@@ -556,7 +561,7 @@ print_device(const char *uri, /* I - Device URI */
}
else if (errno != EAGAIN)
{
- fprintf(stderr, _("ERROR: select() returned %d\n"), (int)errno);
+ _cupsLangPrintf(stderr, _("ERROR: select() returned %d\n"), (int)errno);
return CUPS_BACKEND_STOP;
}
}
@@ -632,7 +637,8 @@ print_device(const char *uri, /* I - Device URI */
*/
OSStatus err = (*g.classdriver)->Abort(g.classdriver);
- fprintf(stderr, _("ERROR: %ld: (canceled:%ld)\n"), (long)status, (long)err);
+ _cupsLangPrintf(stderr, _("ERROR: %ld: (canceled:%ld)\n"),
+ (long)status, (long)err);
status = CUPS_BACKEND_STOP;
break;
}
@@ -656,27 +662,42 @@ print_device(const char *uri, /* I - Device URI */
* Wait for the side channel thread to exit...
*/
- close(CUPS_SC_FD);
- pthread_mutex_lock(&g.readwrite_lock_mutex);
- g.readwrite_lock = 0;
- pthread_cond_signal(&g.readwrite_lock_cond);
- pthread_mutex_unlock(&g.readwrite_lock_mutex);
-
- g.sidechannel_thread_stop = 1;
- pthread_mutex_lock(&g.sidechannel_thread_mutex);
- if (!g.sidechannel_thread_done)
+ if (sidechannel_started)
{
- cond_timeout.tv_sec = time(NULL) + WAIT_SIDE_DELAY;
- cond_timeout.tv_nsec = 0;
- pthread_cond_timedwait(&g.sidechannel_thread_cond,
- &g.sidechannel_thread_mutex, &cond_timeout);
- }
- pthread_mutex_unlock(&g.sidechannel_thread_mutex);
+ close(CUPS_SC_FD);
+ pthread_mutex_lock(&g.readwrite_lock_mutex);
+ g.readwrite_lock = 0;
+ pthread_cond_signal(&g.readwrite_lock_cond);
+ pthread_mutex_unlock(&g.readwrite_lock_mutex);
+
+ g.sidechannel_thread_stop = 1;
+ pthread_mutex_lock(&g.sidechannel_thread_mutex);
+ if (!g.sidechannel_thread_done)
+ {
+ /*
+ * Wait for the side-channel thread to exit...
+ */
- pthread_join(sidechannel_thread_id, NULL);
+ cond_timeout.tv_sec = time(NULL) + WAIT_SIDE_DELAY;
+ cond_timeout.tv_nsec = 0;
+ if (pthread_cond_timedwait(&g.sidechannel_thread_cond,
+ &g.sidechannel_thread_mutex,
+ &cond_timeout) != 0)
+ {
+ /*
+ * Force the side-channel thread to exit...
+ */
+
+ pthread_kill(sidechannel_thread_id, SIGTERM);
+ }
+ }
+ pthread_mutex_unlock(&g.sidechannel_thread_mutex);
- pthread_cond_destroy(&g.sidechannel_thread_cond);
- pthread_mutex_destroy(&g.sidechannel_thread_mutex);
+ pthread_join(sidechannel_thread_id, NULL);
+
+ pthread_cond_destroy(&g.sidechannel_thread_cond);
+ pthread_mutex_destroy(&g.sidechannel_thread_mutex);
+ }
pthread_cond_destroy(&g.readwrite_lock_cond);
pthread_mutex_destroy(&g.readwrite_lock_mutex);
@@ -689,9 +710,7 @@ print_device(const char *uri, /* I - Device URI */
/*
* Give the read thread WAIT_EOF_DELAY seconds to complete all the data. If
- * we are not signaled in that time then force the thread to exit by setting
- * the waiteof to be false. Plese note that this relies on us using the timeout
- * class driver.
+ * we are not signaled in that time then force the thread to exit.
*/
pthread_mutex_lock(&g.read_thread_mutex);
@@ -703,7 +722,13 @@ print_device(const char *uri, /* I - Device URI */
if (pthread_cond_timedwait(&g.read_thread_cond, &g.read_thread_mutex,
&cond_timeout) != 0)
- g.wait_eof = false;
+ {
+ /*
+ * Force the read thread to exit...
+ */
+
+ pthread_kill(read_thread_id, SIGTERM);
+ }
}
pthread_mutex_unlock(&g.read_thread_mutex);
@@ -827,8 +852,16 @@ sidechannel_thread(void *reference)
switch (command)
{
case CUPS_SC_CMD_SOFT_RESET: /* Do a soft reset */
- soft_reset();
- cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, NULL, 0, 1.0);
+ if ((*g.classdriver)->SoftReset != NULL)
+ {
+ soft_reset();
+ cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, NULL, 0, 1.0);
+ }
+ else
+ {
+ cupsSideChannelWrite(command, CUPS_SC_STATUS_NOT_IMPLEMENTED,
+ NULL, 0, 1.0);
+ }
break;
case CUPS_SC_CMD_DRAIN_OUTPUT: /* Drain all pending output */
@@ -1091,7 +1124,7 @@ static Boolean find_device_cb(void *refcon,
if (!keepLooking && g.status_timer != NULL)
{
fputs("STATE: -offline-error\n", stderr);
- fputs(_("INFO: Printer is now on-line.\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Printer is now on-line.\n"));
CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), g.status_timer, kCFRunLoopDefaultMode);
CFRelease(g.status_timer);
g.status_timer = NULL;
@@ -1109,7 +1142,7 @@ static void status_timer_cb(CFRunLoopTimerRef timer,
void *info)
{
fputs("STATE: +offline-error\n", stderr);
- fputs(_("INFO: Printer is currently off-line.\n"), stderr);
+ _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
}
@@ -1541,18 +1574,19 @@ CFStringRef cfstr_create_trim(const char *cstr)
#pragma mark -
/*
- * 'parse_options()' - Parse uri options.
+ * 'parse_options()' - Parse URI options.
*/
-static void parse_options(const char *options,
+static void parse_options(char *options,
char *serial,
int serial_size,
UInt32 *location,
Boolean *wait_eof)
{
- char optionName[255], /* Name of option */
- value[255], /* Value of option */
- *ptr; /* Pointer into name or value */
+ char sep, /* Separator character */
+ *name, /* Name of option */
+ *value; /* Value of option */
+
if (serial)
*serial = '\0';
@@ -1562,56 +1596,61 @@ static void parse_options(const char *options,
if (!options)
return;
- while (*options != '\0')
+ while (*options)
{
- /* Get the name... */
- for (ptr = optionName; *options && *options != '=' && *options != '+';)
- *ptr++ = *options++;
+ /*
+ * Get the name...
+ */
- *ptr = '\0';
- value[0] = '\0';
+ name = options;
- if (*options == '=')
- {
- /* Get the value... */
+ while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
- for (ptr = value; *options && *options != '+';)
- *ptr++ = *options++;
+ if ((sep = *options) != '\0')
+ *options++ = '\0';
- *ptr = '\0';
+ if (sep == '=')
+ {
+ /*
+ * Get the value...
+ */
- if (*options == '+')
+ value = options;
+
+ while (*options && *options != '+' && *options != '&')
options ++;
+
+ if (*options)
+ *options++ = '\0';
}
- else if (*options == '+')
- options ++;
+ else
+ value = (char *)"";
- /*
- * Process the option...
- */
- if (strcasecmp(optionName, "waiteof") == 0)
+ /*
+ * Process the option...
+ */
+
+ if (!strcasecmp(name, "waiteof"))
{
- if (strcasecmp(value, "on") == 0 ||
- strcasecmp(value, "yes") == 0 ||
- strcasecmp(value, "true") == 0)
+ if (!strcasecmp(value, "on") ||
+ !strcasecmp(value, "yes") ||
+ !strcasecmp(value, "true"))
*wait_eof = true;
- else if (strcasecmp(value, "off") == 0 ||
- strcasecmp(value, "no") == 0 ||
- strcasecmp(value, "false") == 0)
+ else if (!strcasecmp(value, "off") ||
+ !strcasecmp(value, "no") ||
+ !strcasecmp(value, "false"))
*wait_eof = false;
else
- fprintf(stderr, _("WARNING: Boolean expected for waiteof option \"%s\"\n"), value);
+ _cupsLangPrintf(stderr,
+ _("WARNING: Boolean expected for waiteof option "
+ "\"%s\"\n"), value);
}
- else if (strcasecmp(optionName, "serial") == 0)
- {
+ else if (!strcasecmp(name, "serial"))
strlcpy(serial, value, serial_size);
- }
- else if (strcasecmp(optionName, "location") == 0 && location)
+ else if (!strcasecmp(name, "location") && location)
*location = strtol(value, NULL, 16);
}
-
- return;
}
@@ -1885,7 +1924,7 @@ static void parse_pserror(char *sockBuffer,
/*
- * 'soft_reset'
+ * 'soft_reset()' - Send a soft reset to the device.
*/
static void soft_reset()
@@ -1971,5 +2010,5 @@ static void get_device_id(cups_sc_status_t *status,
/*
- * End of "$Id: usb-darwin.c 6680 2007-07-16 18:46:16Z mike $".
+ * End of "$Id: usb-darwin.c 6953 2007-09-13 22:41:21Z mike $".
*/
diff --git a/backend/usb-unix.c b/backend/usb-unix.c
index ff9e825a0..60f821d97 100644
--- a/backend/usb-unix.c
+++ b/backend/usb-unix.c
@@ -1,5 +1,5 @@
/*
- * "$Id: usb-unix.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: usb-unix.c 6911 2007-09-04 20:35:08Z mike $"
*
* USB port backend for the Common UNIX Printing System (CUPS).
*
@@ -48,7 +48,7 @@ int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
- const char *options, /* I - Device options/serial number */
+ char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
@@ -105,8 +105,9 @@ print_device(const char *uri, /* I - Device URI */
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
@@ -119,20 +120,23 @@ print_device(const char *uri, /* I - Device URI */
if (errno == EBUSY)
{
- fputs(_("INFO: Printer busy; will retry in 10 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 10 seconds...\n"));
sleep(10);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
errno == ENODEV)
{
- fputs(_("INFO: Printer not connected; will retry in 30 seconds...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer not connected; will retry in 30 "
+ "seconds...\n"));
sleep(30);
}
else
{
- fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
- resource, strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open device file \"%s\": %s\n"),
+ resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
@@ -172,13 +176,13 @@ print_device(const char *uri, /* I - Device URI */
tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
if (print_fd != 0 && tbytes >= 0)
- fprintf(stderr,
+ _cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
- _("INFO: Sent print file, %lld bytes...\n"),
+ _("INFO: Sent print file, %lld bytes...\n"),
#else
- _("INFO: Sent print file, %ld bytes...\n"),
+ _("INFO: Sent print file, %ld bytes...\n"),
#endif /* HAVE_LONG_LONG */
- CUPS_LLCAST tbytes);
+ CUPS_LLCAST tbytes);
}
/*
@@ -411,8 +415,8 @@ open_device(const char *uri, /* I - Device URI */
if (busy)
{
- fputs(_("INFO: Printer busy; will retry in 5 seconds...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 5 seconds...\n"));
sleep(5);
}
}
@@ -504,8 +508,8 @@ open_device(const char *uri, /* I - Device URI */
if (busy)
{
- fputs(_("INFO: Printer is busy; will retry in 5 seconds...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer is busy; will retry in 5 seconds...\n"));
sleep(5);
}
}
@@ -562,7 +566,7 @@ side_cb(int print_fd, /* I - Print file */
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
- fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+ _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
return;
}
@@ -611,5 +615,5 @@ side_cb(int print_fd, /* I - Print file */
/*
- * End of "$Id: usb-unix.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: usb-unix.c 6911 2007-09-04 20:35:08Z mike $".
*/
diff --git a/backend/usb.c b/backend/usb.c
index 2abd4df47..689d39900 100644
--- a/backend/usb.c
+++ b/backend/usb.c
@@ -1,5 +1,5 @@
/*
- * "$Id: usb.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: usb.c 6911 2007-09-04 20:35:08Z mike $"
*
* USB port backend for the Common UNIX Printing System (CUPS).
*
@@ -54,7 +54,7 @@
void list_devices(void);
int print_device(const char *uri, const char *hostname,
- const char *resource, const char *options,
+ const char *resource, char *options,
int print_fd, int copies, int argc, char *argv[]);
@@ -99,7 +99,7 @@ int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
- const char *options, /* I - Device options/serial number */
+ char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
@@ -184,8 +184,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
else if (argc < 6 || argc > 7)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_FAILED);
}
@@ -200,8 +201,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
hostname, sizeof(hostname), &port,
resource, sizeof(resource)) < HTTP_URI_OK)
{
- fputs(_("ERROR: No device URI found in argv[0] or in DEVICE_URI "
- "environment variable!\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("ERROR: No device URI found in argv[0] or in DEVICE_URI "
+ "environment variable!\n"));
return (1);
}
@@ -237,8 +239,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if ((print_fd = open(argv[6], O_RDONLY)) < 0)
{
- fprintf(stderr, _("ERROR: Unable to open print file %s - %s\n"),
- argv[6], strerror(errno));
+ _cupsLangPrintf(stderr, _("ERROR: Unable to open print file %s - %s\n"),
+ argv[6], strerror(errno));
return (CUPS_BACKEND_FAILED);
}
@@ -264,5 +266,5 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
/*
- * End of "$Id: usb.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: usb.c 6911 2007-09-04 20:35:08Z mike $".
*/
diff --git a/cgi-bin/help.c b/cgi-bin/help.c
index 85a6a7cae..38fcec918 100644
--- a/cgi-bin/help.c
+++ b/cgi-bin/help.c
@@ -151,6 +151,7 @@ main(int argc, /* I - Number of command-line arguments */
cgiSetVariable("HELPFILE", helpfile);
cgiSetVariable("HELPTITLE", n->text);
+ cgiSetVariable("TOPIC", n->section);
/*
* Send a standard page header...
diff --git a/cgi-bin/template.c b/cgi-bin/template.c
index 908db4b48..021de82f5 100644
--- a/cgi-bin/template.c
+++ b/cgi-bin/template.c
@@ -1,5 +1,5 @@
/*
- * "$Id: template.c 6717 2007-07-24 23:47:12Z mike $"
+ * "$Id: template.c 6799 2007-08-15 19:33:36Z mike $"
*
* CGI template function.
*
@@ -85,9 +85,9 @@ cgiCopyTemplateFile(FILE *out, /* I - Output file */
void
cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
{
- int i; /* Looping var */
char filename[1024], /* Filename */
- locale[16]; /* Locale name */
+ locale[16], /* Locale name */
+ *locptr; /* Pointer into locale name */
const char *directory, /* Directory for templates */
*lang; /* Language */
FILE *in; /* Input file */
@@ -100,22 +100,19 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
* Convert the language to a locale name...
*/
+ locale[0] = '\0';
+
if ((lang = getenv("LANG")) != NULL)
{
- for (i = 0; lang[i] && i < 15; i ++)
- if (isalnum(lang[i] & 255) || lang[i] == '_')
- locale[i] = tolower(lang[i]);
- else if (lang[i] == '-')
- locale[i] = '_';
- else
- break;
+ locale[0] = '/';
+ strlcpy(locale + 1, lang, sizeof(locale) - 1);
- locale[i] = '\0';
+ if ((locptr = strchr(locale, '.')) != NULL)
+ *locptr = '\0'; /* Strip charset */
}
- else
- locale[0] = '\0';
- fprintf(stderr, "DEBUG2: locale=\"%s\"...\n", locale);
+ fprintf(stderr, "DEBUG: lang=\"%s\", locale=\"%s\"...\n",
+ lang ? lang : "(null)", locale);
/*
* See if we have a template file for this language...
@@ -123,14 +120,17 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
directory = cgiGetTemplateDir();
- snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl);
- if (access(filename, 0))
+ snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
+ if ((in = fopen(filename, "r")) == NULL)
{
- locale[2] = '\0';
+ locale[3] = '\0';
- snprintf(filename, sizeof(filename), "%s/%s/%s", directory, locale, tmpl);
- if (access(filename, 0))
+ snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
+ if ((in = fopen(filename, "r")) == NULL)
+ {
snprintf(filename, sizeof(filename), "%s/%s", directory, tmpl);
+ in = fopen(filename, "r");
+ }
}
fprintf(stderr, "DEBUG2: Template file is \"%s\"...\n", filename);
@@ -139,7 +139,7 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
* Open the template file...
*/
- if ((in = fopen(filename, "r")) == NULL)
+ if (!in)
{
fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
filename, strerror(errno));
@@ -663,5 +663,5 @@ cgi_puturi(const char *s, /* I - String to output */
/*
- * End of "$Id: template.c 6717 2007-07-24 23:47:12Z mike $".
+ * End of "$Id: template.c 6799 2007-08-15 19:33:36Z mike $".
*/
diff --git a/conf/mime.convs.in b/conf/mime.convs.in
index ad9ab9041..d6f4fb371 100644
--- a/conf/mime.convs.in
+++ b/conf/mime.convs.in
@@ -1,5 +1,5 @@
#
-# "$Id: mime.convs.in 6649 2007-07-11 21:46:42Z mike $"
+# "$Id: mime.convs.in 6761 2007-08-02 17:58:59Z mike $"
#
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
# VERSIONS OF CUPS. Instead, create a "local.convs" file that
@@ -109,5 +109,5 @@ application/vnd.cups-postscript application/vnd.cups-raster 100 pstoraster
@DEFAULT_RAW_PRINTING@application/octet-stream application/vnd.cups-raw 0 -
#
-# End of "$Id: mime.convs.in 6649 2007-07-11 21:46:42Z mike $".
+# End of "$Id: mime.convs.in 6761 2007-08-02 17:58:59Z mike $".
#
diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4
index 27835e87c..7bfe47c61 100644
--- a/config-scripts/cups-common.m4
+++ b/config-scripts/cups-common.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-common.m4 6749 2007-07-31 00:00:21Z mike $"
+dnl "$Id: cups-common.m4 6946 2007-09-12 18:28:16Z mike $"
dnl
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -20,7 +20,7 @@ dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Versio number information...
-CUPS_VERSION="1.3.0"
+CUPS_VERSION="1.3.1"
CUPS_REVISION=""
#if test -z "$CUPS_REVISION" -a -d .svn; then
# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
@@ -123,6 +123,7 @@ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
+AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
@@ -286,5 +287,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl
-dnl End of "$Id: cups-common.m4 6749 2007-07-31 00:00:21Z mike $".
+dnl End of "$Id: cups-common.m4 6946 2007-09-12 18:28:16Z mike $".
dnl
diff --git a/config-scripts/cups-directories.m4 b/config-scripts/cups-directories.m4
index c34dfd090..a0bdffcbe 100644
--- a/config-scripts/cups-directories.m4
+++ b/config-scripts/cups-directories.m4
@@ -1,5 +1,5 @@
dnl
-dnl "$Id: cups-directories.m4 6649 2007-07-11 21:46:42Z mike $"
+dnl "$Id: cups-directories.m4 6838 2007-08-22 20:00:19Z mike $"
dnl
dnl Directory stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -292,20 +292,24 @@ AC_SUBST(CUPS_FONTPATH)
AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$CUPS_FONTPATH")
# Locale data
-case "$uname" in
- Linux | GNU | *BSD* | Darwin*)
- CUPS_LOCALEDIR="$datadir/locale"
- ;;
+if test "$localedir" = "\${datarootdir}/locale"; then
+ case "$uname" in
+ Linux | GNU | *BSD* | Darwin*)
+ CUPS_LOCALEDIR="$datarootdir/locale"
+ ;;
- OSF1* | AIX*)
- CUPS_LOCALEDIR="$exec_prefix/lib/nls/msg"
- ;;
+ OSF1* | AIX*)
+ CUPS_LOCALEDIR="$exec_prefix/lib/nls/msg"
+ ;;
- *)
- # This is the standard System V location...
- CUPS_LOCALEDIR="$exec_prefix/lib/locale"
- ;;
-esac
+ *)
+ # This is the standard System V location...
+ CUPS_LOCALEDIR="$exec_prefix/lib/locale"
+ ;;
+ esac
+else
+ CUPS_LOCALEDIR="$localedir"
+fi
AC_DEFINE_UNQUOTED(CUPS_LOCALEDIR, "$CUPS_LOCALEDIR")
AC_SUBST(CUPS_LOCALEDIR)
@@ -356,5 +360,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
AC_SUBST(CUPS_STATEDIR)
dnl
-dnl End of "$Id: cups-directories.m4 6649 2007-07-11 21:46:42Z mike $".
+dnl End of "$Id: cups-directories.m4 6838 2007-08-22 20:00:19Z mike $".
dnl
diff --git a/config.h.in b/config.h.in
index b59bfd0ab..4c4a21714 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,5 +1,5 @@
/*
- * "$Id: config.h.in 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: config.h.in 6878 2007-08-29 17:22:26Z mike $"
*
* Configuration file for the Common UNIX Printing System (CUPS).
*
@@ -524,6 +524,13 @@
/*
+ * Do we have <sys/param.h>?
+ */
+
+#undef HAVE_SYS_PARAM_H
+
+
+/*
* Do we have <sys/ucred.h>?
*/
@@ -540,5 +547,5 @@
#endif /* !_CUPS_CONFIG_H_ */
/*
- * End of "$Id: config.h.in 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: config.h.in 6878 2007-08-29 17:22:26Z mike $".
*/
diff --git a/cups/auth.c b/cups/auth.c
index ceb65ec2f..055977193 100644
--- a/cups/auth.c
+++ b/cups/auth.c
@@ -1,5 +1,5 @@
/*
- * "$Id: auth.c 6722 2007-07-25 17:19:09Z mike $"
+ * "$Id: auth.c 6779 2007-08-08 19:49:48Z mike $"
*
* Authentication functions for the Common UNIX Printing System (CUPS).
*
@@ -654,5 +654,5 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
/*
- * End of "$Id: auth.c 6722 2007-07-25 17:19:09Z mike $".
+ * End of "$Id: auth.c 6779 2007-08-08 19:49:48Z mike $".
*/
diff --git a/cups/cups.h b/cups/cups.h
index befa0a395..9cb3e2d15 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -1,5 +1,5 @@
/*
- * "$Id: cups.h 6658 2007-07-13 01:13:26Z mike $"
+ * "$Id: cups.h 6946 2007-09-12 18:28:16Z mike $"
*
* API definitions for the Common UNIX Printing System (CUPS).
*
@@ -59,10 +59,10 @@ extern "C" {
* Constants...
*/
-# define CUPS_VERSION 1.0300
+# define CUPS_VERSION 1.0301
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 3
-# define CUPS_VERSION_PATCH 0
+# define CUPS_VERSION_PATCH 1
# define CUPS_DATE_ANY -1
@@ -256,5 +256,5 @@ extern void cupsSetDefaultDest(const char *name,
#endif /* !_CUPS_CUPS_H_ */
/*
- * End of "$Id: cups.h 6658 2007-07-13 01:13:26Z mike $".
+ * End of "$Id: cups.h 6946 2007-09-12 18:28:16Z mike $".
*/
diff --git a/cups/http-addr.c b/cups/http-addr.c
index 14e6112de..58504ca1d 100644
--- a/cups/http-addr.c
+++ b/cups/http-addr.c
@@ -1,5 +1,5 @@
/*
- * "$Id: http-addr.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: http-addr.c 6816 2007-08-20 20:16:00Z mike $"
*
* HTTP address routines for the Common UNIX Printing System (CUPS).
*
@@ -197,18 +197,17 @@ httpAddrLookup(
#endif /* AF_LOCAL */
#ifdef HAVE_GETNAMEINFO
{
- if (getnameinfo(&addr->addr, httpAddrLength(addr), name, namelen,
- NULL, 0, 0))
- {
- /*
- * If we get an error back, then the address type is not supported
- * and we should zero out the buffer...
- */
-
- name[0] = '\0';
+ /*
+ * STR #2486: httpAddrLookup() fails when getnameinfo() returns EAI_AGAIN
+ *
+ * FWIW, I think this is really a bug in the implementation of
+ * getnameinfo(), but falling back on httpAddrString() is easy to
+ * do...
+ */
- return (NULL);
- }
+ if (getnameinfo(&addr->addr, httpAddrLength(addr), name, namelen,
+ NULL, 0, 0))
+ return (httpAddrString(addr, name, namelen));
}
#else
{
@@ -553,5 +552,5 @@ httpGetHostname(http_t *http, /* I - HTTP connection or NULL */
/*
- * End of "$Id: http-addr.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: http-addr.c 6816 2007-08-20 20:16:00Z mike $".
*/
diff --git a/cups/http-private.h b/cups/http-private.h
index cd46bb31f..c36eb8d01 100644
--- a/cups/http-private.h
+++ b/cups/http-private.h
@@ -1,5 +1,5 @@
/*
- * "$Id: http-private.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: http-private.h 6934 2007-09-10 16:46:20Z mike $"
*
* Private HTTP definitions for the Common UNIX Printing System (CUPS).
*
@@ -62,6 +62,9 @@
# ifndef HAVE_GSS_C_NT_HOSTBASED_SERVICE
# define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name
# endif /* !HAVE_GSS_C_NT_HOSTBASED_SERVICE */
+# ifdef HAVE_KRB5_H
+# include <krb5.h>
+# endif /* HAVE_KRB5_H */
# endif /* HAVE_GSSAPI */
# ifdef HAVE_AUTHORIZATION_H
@@ -263,5 +266,5 @@ extern void _cups_freeifaddrs(struct ifaddrs *addrs);
#endif /* !_CUPS_HTTP_PRIVATE_H_ */
/*
- * End of "$Id: http-private.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: http-private.h 6934 2007-09-10 16:46:20Z mike $".
*/
diff --git a/cups/language.c b/cups/language.c
index ac62feb27..a615eecba 100644
--- a/cups/language.c
+++ b/cups/language.c
@@ -1,5 +1,5 @@
/*
- * "$Id: language.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: language.c 6917 2007-09-05 21:14:17Z mike $"
*
* I18N/language support for the Common UNIX Printing System (CUPS).
*
@@ -985,11 +985,12 @@ typedef struct
static const _apple_name_locale_t apple_name_locale[] =
{
{ "en" , "en_US" },
- { "no" , "nb" },
+ { "nb" , "no" },
{ "zh-Hans" , "zh_CN" },
{ "zh-Hant" , "zh_TW" }
};
+
/*
* 'appleLangDefault()' - Get the default locale string.
*/
@@ -998,6 +999,8 @@ static const char * /* O - Locale string */
appleLangDefault(void)
{
int i; /* Looping var */
+ CFBundleRef bundle; /* Main bundle (if any) */
+ CFArrayRef bundleList; /* List of localizations in bundle */
CFPropertyListRef localizationList;
/* List of localization data */
CFStringRef languageName; /* Current name */
@@ -1014,63 +1017,77 @@ appleLangDefault(void)
if (!cg->language[0])
{
if ((lang = getenv("LANG")))
+ {
strlcpy(cg->language, lang, sizeof(cg->language));
- else
+ return (cg->language);
+ }
+ else if ((bundle = CFBundleGetMainBundle()) != NULL &&
+ (bundleList = CFBundleCopyBundleLocalizations(bundle)) != NULL)
{
localizationList =
- CFPreferencesCopyAppValue(CFSTR("AppleLanguages"),
- kCFPreferencesCurrentApplication);
+ CFBundleCopyPreferredLocalizationsFromArray(bundleList);
- if (localizationList != NULL)
+ CFRelease(bundleList);
+ }
+ else
+ localizationList =
+ CFPreferencesCopyAppValue(CFSTR("AppleLanguages"),
+ kCFPreferencesCurrentApplication);
+
+ if (localizationList)
+ {
+ if (CFGetTypeID(localizationList) == CFArrayGetTypeID() &&
+ CFArrayGetCount(localizationList) > 0)
{
- if (CFGetTypeID(localizationList) == CFArrayGetTypeID() &&
- CFArrayGetCount(localizationList) > 0)
+ languageName = CFArrayGetValueAtIndex(localizationList, 0);
+
+ if (languageName &&
+ CFGetTypeID(languageName) == CFStringGetTypeID())
{
- languageName = CFArrayGetValueAtIndex(localizationList, 0);
+ localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(
+ kCFAllocatorDefault, languageName);
- if (languageName != NULL &&
- CFGetTypeID(languageName) == CFStringGetTypeID())
- {
- localeName = CFLocaleCreateCanonicalLocaleIdentifierFromString(
- kCFAllocatorDefault, languageName);
+ if (localeName)
+ {
+ CFStringGetCString(localeName, cg->language, sizeof(cg->language),
+ kCFStringEncodingASCII);
+ CFRelease(localeName);
- if (localeName != NULL)
- {
- CFStringGetCString(localeName, cg->language, sizeof(cg->language),
- kCFStringEncodingASCII);
- CFRelease(localeName);
+ DEBUG_printf(("appleLangDefault: cg->language=\"%s\"\n",
+ cg->language));
- /*
- * Map new language identifiers to locales...
- */
+ /*
+ * Map new language identifiers to locales...
+ */
- for (i = 0;
- i < sizeof(apple_name_locale) / sizeof(apple_name_locale[0]);
- i++)
+ for (i = 0;
+ i < sizeof(apple_name_locale) / sizeof(apple_name_locale[0]);
+ i++)
+ {
+ if (!strcmp(cg->language, apple_name_locale[i].name))
{
- if (!strcmp(cg->language, apple_name_locale[i].name))
- {
- strlcpy(cg->language, apple_name_locale[i].locale,
- sizeof(cg->language));
- break;
- }
+ DEBUG_printf(("appleLangDefault: mapping \"%s\" to \"%s\"...\n",
+ cg->language, apple_name_locale[i].locale));
+ strlcpy(cg->language, apple_name_locale[i].locale,
+ sizeof(cg->language));
+ break;
}
+ }
- /*
- * Convert language subtag into region subtag...
- */
+ /*
+ * Convert language subtag into region subtag...
+ */
- if (cg->language[2] == '-')
- cg->language[2] = '_';
+ if (cg->language[2] == '-')
+ cg->language[2] = '_';
- if (strchr(cg->language, '.') == NULL)
- strlcat(cg->language, ".UTF-8", sizeof(cg->language));
- }
- }
+ if (!strchr(cg->language, '.'))
+ strlcat(cg->language, ".UTF-8", sizeof(cg->language));
+ }
}
-
- CFRelease(localizationList);
}
+
+ CFRelease(localizationList);
}
/*
@@ -1354,5 +1371,5 @@ cups_unquote(char *d, /* O - Unquoted string */
/*
- * End of "$Id: language.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: language.c 6917 2007-09-05 21:14:17Z mike $".
*/
diff --git a/cups/localize.c b/cups/localize.c
index 911d8ef35..347b9d97e 100644
--- a/cups/localize.c
+++ b/cups/localize.c
@@ -1,5 +1,5 @@
/*
- * "$Id: localize.c 6686 2007-07-16 23:11:59Z mike $"
+ * "$Id: localize.c 6883 2007-08-29 21:05:17Z mike $"
*
* PPD custom option routines for the Common UNIX Printing System (CUPS).
*
@@ -44,7 +44,8 @@
* Local functions...
*/
-static void ppd_ll_CC(char *ll_CC, char *ll);
+static void ppd_ll_CC(char *ll_CC, int ll_CC_size,
+ char *ll, int ll_size);
static ppd_attr_t *ppd_localized_attr(ppd_file_t *ppd,
const char *keyword,
const char *spec, const char *ll_CC,
@@ -90,7 +91,7 @@ ppdLocalize(ppd_file_t *ppd) /* I - PPD file */
* Get the default language...
*/
- ppd_ll_CC(ll_CC, ll);
+ ppd_ll_CC(ll_CC, sizeof(ll_CC), ll, sizeof(ll));
/*
* Now lookup all of the groups, options, choices, etc.
@@ -240,7 +241,7 @@ ppdLocalizeIPPReason(
* Get the default language...
*/
- ppd_ll_CC(ll_CC, ll);
+ ppd_ll_CC(ll_CC, sizeof(ll_CC), ll, sizeof(ll));
/*
* Find the localized attribute...
@@ -391,8 +392,9 @@ ppdLocalizeIPPReason(
static void
ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
- char *ll) /* O - Generic locale name */
-
+ int ll_CC_size, /* I - Size of country-specific name */
+ char *ll, /* O - Generic locale name */
+ int ll_size) /* I - Size of generic name */
{
cups_lang_t *lang; /* Current language */
@@ -403,8 +405,8 @@ ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
if ((lang = cupsLangDefault()) == NULL)
{
- strcpy(ll_CC, "en_US");
- strcpy(ll, "en");
+ strlcpy(ll_CC, "en_US", ll_CC_size);
+ strlcpy(ll, "en", ll_size);
return;
}
@@ -412,8 +414,10 @@ ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
* Copy the locale name...
*/
- strlcpy(ll_CC, lang->language, sizeof(ll_CC));
- strlcpy(ll, lang->language, sizeof(ll));
+ strlcpy(ll_CC, lang->language, ll_CC_size);
+ strlcpy(ll, lang->language, ll_size);
+
+ DEBUG_printf(("ll_CC=\"%s\", ll=\"%s\"\n", ll_CC, ll));
if (strlen(ll_CC) == 2)
{
@@ -423,16 +427,16 @@ ppd_ll_CC(char *ll_CC, /* O - Country-specific locale name */
*/
if (!strcmp(ll_CC, "cs"))
- strcpy(ll_CC, "cs_CZ");
+ strlcpy(ll_CC, "cs_CZ", ll_CC_size);
else if (!strcmp(ll_CC, "en"))
- strcpy(ll_CC, "en_US");
+ strlcpy(ll_CC, "en_US", ll_CC_size);
else if (!strcmp(ll_CC, "ja"))
- strcpy(ll_CC, "ja_JP");
+ strlcpy(ll_CC, "ja_JP", ll_CC_size);
else if (!strcmp(ll_CC, "sv"))
- strcpy(ll_CC, "sv_SE");
- else if (!strcmp(ll_CC, "zh"))
- strcpy(ll_CC, "zh_CN"); /* Simplified Chinese */
- else
+ strlcpy(ll_CC, "sv_SE", ll_CC_size);
+ else if (!strcmp(ll_CC, "zh")) /* Simplified Chinese */
+ strlcpy(ll_CC, "zh_CN", ll_CC_size);
+ else if (ll_CC_size >= 6)
{
ll_CC[2] = '_';
ll_CC[3] = toupper(ll_CC[0] & 255);
@@ -475,17 +479,31 @@ ppd_localized_attr(ppd_file_t *ppd, /* I - PPD file */
snprintf(lkeyword, sizeof(lkeyword), "%s.%s", ll, keyword);
attr = ppdFindAttr(ppd, lkeyword, spec);
- if (!attr && !strcmp(ll, "ja"))
+ if (!attr)
{
- /*
- * Due to a bug in the CUPS DDK 1.1.0 ppdmerge program, Japanese
- * PPD files were incorrectly assigned "jp" as the locale name
- * instead of "ja". Support both the old (incorrect) and new
- * locale names for Japanese...
- */
+ if (!strcmp(ll, "ja"))
+ {
+ /*
+ * Due to a bug in the CUPS DDK 1.1.0 ppdmerge program, Japanese
+ * PPD files were incorrectly assigned "jp" as the locale name
+ * instead of "ja". Support both the old (incorrect) and new
+ * locale names for Japanese...
+ */
- snprintf(lkeyword, sizeof(lkeyword), "jp.%s", keyword);
- attr = ppdFindAttr(ppd, lkeyword, spec);
+ snprintf(lkeyword, sizeof(lkeyword), "jp.%s", keyword);
+ attr = ppdFindAttr(ppd, lkeyword, spec);
+ }
+ else if (!strcmp(ll, "no"))
+ {
+ /*
+ * Norway has two languages, "Bokmal" (the primary one)
+ * and "Nynorsk" (new Norwegian); we map "no" to "nb" here as
+ * recommended by the locale folks...
+ */
+
+ snprintf(lkeyword, sizeof(lkeyword), "nb.%s", keyword);
+ attr = ppdFindAttr(ppd, lkeyword, spec);
+ }
}
}
@@ -502,5 +520,5 @@ ppd_localized_attr(ppd_file_t *ppd, /* I - PPD file */
/*
- * End of "$Id: localize.c 6686 2007-07-16 23:11:59Z mike $".
+ * End of "$Id: localize.c 6883 2007-08-29 21:05:17Z mike $".
*/
diff --git a/cups/mark.c b/cups/mark.c
index 83298a226..98720bf01 100644
--- a/cups/mark.c
+++ b/cups/mark.c
@@ -1,5 +1,5 @@
/*
- * "$Id: mark.c 6703 2007-07-20 21:28:10Z mike $"
+ * "$Id: mark.c 6942 2007-09-10 22:55:00Z mike $"
*
* Option marking routines for the Common UNIX Printing System (CUPS).
*
@@ -724,5 +724,5 @@ ppd_defaults(ppd_file_t *ppd, /* I - PPD file */
/*
- * End of "$Id: mark.c 6703 2007-07-20 21:28:10Z mike $".
+ * End of "$Id: mark.c 6942 2007-09-10 22:55:00Z mike $".
*/
diff --git a/cups/ppd.c b/cups/ppd.c
index bf4185db0..779722070 100644
--- a/cups/ppd.c
+++ b/cups/ppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ppd.c 6719 2007-07-25 00:08:49Z mike $"
+ * "$Id: ppd.c 6942 2007-09-10 22:55:00Z mike $"
*
* PPD file routines for the Common UNIX Printing System (CUPS).
*
@@ -3186,5 +3186,5 @@ ppd_read(cups_file_t *fp, /* I - File to read from */
/*
- * End of "$Id: ppd.c 6719 2007-07-25 00:08:49Z mike $".
+ * End of "$Id: ppd.c 6942 2007-09-10 22:55:00Z mike $".
*/
diff --git a/cups/test.ppd b/cups/test.ppd
index 303b200a2..0add09e97 100644
--- a/cups/test.ppd
+++ b/cups/test.ppd
@@ -1,6 +1,6 @@
*PPD-Adobe: "4.3"
*%
-*% "$Id: test.ppd 6676 2007-07-16 17:09:09Z mike $"
+*% "$Id: test.ppd 6799 2007-08-15 19:33:36Z mike $"
*%
*% Test PPD file for the Common UNIX Printing System (CUPS).
*%
@@ -149,6 +149,18 @@ http://foo/fr/bar.html
help:anchor='foo'%20bookID=Vendor%20Help
/help/fr/foo/bar.html"
*End
+*zh_TW.cupsIPPReason foo/Number 1 Foo Reason: "text:Number%201
+text:Foo%20Reason
+http://foo/zh_TW/bar.html
+help:anchor='foo'%20bookID=Vendor%20Help
+/help/zh_TW/foo/bar.html"
+*End
+*zh.cupsIPPReason foo/Number 2 Foo Reason: "text:Number%202
+text:Foo%20Reason
+http://foo/zh/bar.html
+help:anchor='foo'%20bookID=Vendor%20Help
+/help/zh/foo/bar.html"
+*End
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
@@ -187,5 +199,5 @@ help:anchor='foo'%20bookID=Vendor%20Help
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
*Font ZapfDingbats: Special "(001.004S)" Standard ROM
*%
-*% End of "$Id: test.ppd 6676 2007-07-16 17:09:09Z mike $".
+*% End of "$Id: test.ppd 6799 2007-08-15 19:33:36Z mike $".
*%
diff --git a/cups/testppd.c b/cups/testppd.c
index 6fb4fb49c..afb252f48 100644
--- a/cups/testppd.c
+++ b/cups/testppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testppd.c 6676 2007-07-16 17:09:09Z mike $"
+ * "$Id: testppd.c 6799 2007-08-15 19:33:36Z mike $"
*
* PPD test program for the Common UNIX Printing System (CUPS).
*
@@ -224,6 +224,18 @@ main(int argc, /* I - Number of command-line arguments */
printf("FAIL (\"%s\" instead of \"La Long Foo Reason\")\n", buffer);
}
+ putenv("LANG=zh_TW");
+
+ fputs("ppdLocalizeIPPReason(zh_TW text): ", stdout);
+ if (ppdLocalizeIPPReason(ppd, "foo", NULL, buffer, sizeof(buffer)) &&
+ !strcmp(buffer, "Number 1 Foo Reason"))
+ puts("PASS");
+ else
+ {
+ status ++;
+ printf("FAIL (\"%s\" instead of \"Number 1 Foo Reason\")\n", buffer);
+ }
+
ppdClose(ppd);
}
else
@@ -360,5 +372,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: testppd.c 6676 2007-07-16 17:09:09Z mike $".
+ * End of "$Id: testppd.c 6799 2007-08-15 19:33:36Z mike $".
*/
diff --git a/doc/Makefile b/doc/Makefile
index 2414de04f..9b7dd8812 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6733 2007-07-26 18:09:46Z mike $"
+# "$Id: Makefile 6824 2007-08-20 22:21:15Z mike $"
#
# Documentation makefile for the Common UNIX Printing System (CUPS).
#
@@ -92,6 +92,8 @@ WEBIMAGES = \
images/printer-idle.gif \
images/printer-processing.gif \
images/printer-stopped.gif \
+ images/raster.png \
+ images/raster.svg \
images/smiley.jpg \
images/tab-left.gif \
images/tab-right.gif \
diff --git a/doc/cups-printable.css b/doc/cups-printable.css
index 08457c05b..4b8bc87bd 100644
--- a/doc/cups-printable.css
+++ b/doc/cups-printable.css
@@ -110,14 +110,13 @@ SPAN.info {
white-space: nowrap;
}
-H2 SPAN.info, H3 SPAN.info {
+H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
float: right;
font-size: 100%;
}
H2.title, H3.title {
border-bottom: solid 2pt #000000;
- page-break-before: always;
}
DT {
@@ -134,7 +133,7 @@ DL.category DT {
}
P.summary {
- margin-left: 54pt;
+ margin-left: 36pt;
font-family: monospace;
}
diff --git a/doc/cups.css b/doc/cups.css
index 292e170f7..026042412 100644
--- a/doc/cups.css
+++ b/doc/cups.css
@@ -173,7 +173,7 @@ SPAN.info {
white-space: nowrap;
}
-H2 SPAN.info, H3 SPAN.info {
+H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
float: right;
font-size: 100%;
}
@@ -196,9 +196,10 @@ DIV.sidebar {
background: #ddddaa;
border: solid 2px #cccc99;
float: right;
+ min-width: 25%;
margin-left: 10pt;
+ max-width: 33%;
padding: 5pt;
- width: 25%;
/* These are not implemented by all browsers, but that's OK */
border-radius: 10pt;
-moz-border-radius: 10pt;
@@ -254,7 +255,7 @@ DL.category DT {
}
P.summary {
- margin-left: 54pt;
+ margin-left: 36pt;
font-family: monospace;
}
diff --git a/doc/es/index.html.in b/doc/es/index.html.in
index bca5a1cef..09c774949 100644
--- a/doc/es/index.html.in
+++ b/doc/es/index.html.in
@@ -62,7 +62,7 @@ BORDER="0" ALT=""></A>
<P>Estas p&aacute;ginas web permiten monitorizar sus impresoras y trabajos
as&iacute; como realizar tareas de administraci&oacute;n del sistema.
-Haga click en cualquiera de las pesta&ntilde;as de la parte superior o en los
+Haga clic en cualquiera de las pesta&ntilde;as de la parte superior o en los
botones de la parte inferior para realizar la tarea correspondiente.</P>
<P>
@@ -88,7 +88,7 @@ STYLE="padding-right: 10px;" ALT="Ordenador feliz e impresora">
CUPS proporciona una capa de impresi&oacute;n portable
para sistemas operativos basados en
UNIX<SUP>&reg;</SUP>. Est&aacute; desarrollado y mantenido
-por <A HREF="http://www.apple.com">Apple Inc.</a> para favorecer una soluci&oacute;n de impresi&oacute;n
+por <A HREF="http://www.apple.com">Apple Inc.</A> para favorecer una soluci&oacute;n de impresi&oacute;n
estandar. CUPS es el sistema de impresi&oacute;n estandar usado en
MacOS<SUP>&reg;</SUP> X y la mayor&iacute;a de distribuciones
Linux<SUP>&reg;</SUP>.</P>
diff --git a/doc/help/spec-ppd.html b/doc/help/spec-ppd.html
index b8f420dde..6dd4e91f9 100644
--- a/doc/help/spec-ppd.html
+++ b/doc/help/spec-ppd.html
@@ -4,31 +4,22 @@
<head>
<title>CUPS PPD Extensions</title>
<meta name='keywords' content='Programming, PostScript Printer Description'>
- <link rel='stylesheet' type='text/css' href='../cups.css'>
+ <link rel='stylesheet' type='text/css' href='../cups-printable.css'>
</head>
<body>
<!--
- "$Id: spec-ppd.html 6726 2007-07-25 20:50:26Z mike $"
+ "$Id: spec-ppd.html 6850 2007-08-23 18:29:04Z mike $"
CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
+ Copyright 2007 by Apple Inc.
Copyright 1997-2007 by Easy Software Products.
These coded instructions, statements, and computer programs are the
- property of Easy Software Products and are protected by Federal
- copyright law. Distribution and use rights are outlined in the file
- "LICENSE.txt" which should have been included with this file. If this
- file is missing or damaged please contact Easy Software Products
- at:
-
- Attn: CUPS Licensing Information
- Easy Software Products
- 44141 Airport View Drive, Suite 204
- Hollywood, Maryland 20636 USA
-
- Voice: (301) 373-9600
- EMail: cups-info@cups.org
- WWW: http://www.cups.org
+ property of Apple Inc. and are protected by Federal copyright
+ law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ which should have been included with this file. If this file is
+ file is missing or damaged, see the license at "http://www.cups.org/".
-->
<h2 class='title'><a name='INTRODUCTION'>Introduction</a></h2>
@@ -73,432 +64,402 @@ LINE-END = CR / LF / CR LF
</pre>
-<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
+<h2 class='title'><a name='AUTOCONFIG'>Auto-Configuration</a></h2>
-<h3>APBookFile</h3>
+<p>CUPS supports several methods of auto-configuration via PPD attributes.
+<em>Currently these methods are only implemented on Mac OS X.</em></p>
-<p class='summary'>*APBookFile: "file URL"</p>
+<h3><span class='info'>Mac OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
-<p>This string attribute specifies the Apple help book file to use
-for this printer driver.</p>
+<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p>
-<p>Example:</p>
+<p>This attribute defines a program that sets the default option choices. It
+is run when a printer is added from the printer browser instead of the
+normal PostScript query and SNMP OID attribute lookups.</p>
-<pre class='command'>
-*APBookFile: "file:///Library/Printers/vendor/Help/filename"
-</pre>
-
-<h3>APDuplexRequiresFlippedMargin</h3>
-
-<p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
+<p>The program is provided with two arguments: the printer's device URI and
+the PPD file to be used for the printer. The program must write an updated
+PPD file to stdout.</p>
-<p>This boolean attribute notifies the RIP filters that the
-destination printer does not require the top and bottom margins
-of the <tt>ImageableArea</tt> swapped for the back page. The
-default is <tt>true</tt> when <tt>cupsBackSide</tt> is <tt>Flipped</tt>
-and <tt>false</tt> otherwise.</p>
-
-<p>Example:</p>
+<p>Examples:</p>
<pre class='command'>
-<em>*% Flip the back side images</em>
-*cupsFlipDuplex: true
-
-<em>*% Don't swap the top and bottom margins for the back side</em>
-*APDuplexRequiresFlippedMargin: false
+*% Use our setup tool when adding a printer
+*APAutoSetupTool: "/Library/Printers/vendor/Tools/autosetuptool"
</pre>
-<p>Also see the related <tt>cupsBackSide</tt> attribute.</p>
+<h3><span class='info'>Mac OS X 10.2</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
-<h3>APPrinterPreset</h3>
+<p class='summary'>*?<i>MainKeyword</i>: "<br>
+ PostScript query code that writes a message using the = operator...<br>
+"<br>
+*End</p>
-<p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
+<p>The <tt>?<i>MainKeyword</i><tt> attribute defines PostScript code that
+determines the currently selected/enabled option keyword (choice) for the
+main keyword (option). It is typically used when communicating with USB,
+serial, Appletalk, and AppSocket (port 9100) printers.</p>
-<p>This attribute defines presets for multiple options that show up
-in the print dialog on Mac OS X. Each preset maps to one or more
-pairs of PPD options and choices.</p>
+<p>The PostScript code typically sends its response back using the <tt>=</tt>
+operator.</p>
-<p>Examples:</p>
+<p>Example:</p>
<pre class='command'>
-*APPrinterPreset Text/Text Printing on Plain Paper: "
- *MediaType Plain
- *ColorModel Gray
- *Resolution 600dpi"
-*End
-
-*APPrinterPreset Photo/Photo Printing on Glossy Paper: "
- *MediaType Glossy
- *ColorModel RGB
- *Resolution 300dpi"
+*OpenUI OptionDuplex/Duplexer Installed: Boolean
+*DuplexOptionDuplex: False
+*OptionDuplex False/Not Installed: ""
+*OptionDuplex True/Installed: ""
+
+<em>*% Query the printer for the presence of the duplexer option...</em>
+*?OptionDuplex: "
+ currentpagedevice /Duplex known
+ {(True)} {(False)} ifelse
+ = flush
+"
*End
+*CloseUI: OptionDuplex
</pre>
-<h3>APRemoteQueueID</h3>
+<h3><span class='info'>Mac OS X 10.4</span><a name='OID'>OIDMainKeyword</a></h3>
-<p class='summary'>*APRemoteQueueID: "string"</p>
+<p class='summary'>*?OID<i>MainKeyword</i>: ".n.n.n..."<br>
+*OID<i>MainKeyword</i> <i>OptionKeyword1</i>: "value"<br>
+...<br>
+*OID<i>MainKeyword</i> <i>OptionKeywordN</i>: "value"</p>
-<p>This string attribute notifies the scheduler that this PPD is for a remote CUPS printer, typically shared via Bonjour.</p>
+<p>The <tt>OID<i>MainKeyword</i></tt> attribute is used to define
+SNMP OIDs that map to installable options. The first (query) line
+defines the OID to lookup on the network device. The second and
+subsequent attributes define a mapping from OID value to option
+keyword. Since SNMP is an IP-based network protocol, this method
+is typically only used to configure AppSocket, IPP, and LPD network
+printers.</p>
-<p>Example:</p>
+<p>Examples:</p>
<pre class='command'>
-*APRemoteQueueID: "myprinter"
+*% Get the installed memory on the printer...
+*?OIDInstalledMemory: ".1.3.6.1.2.1.25.2.2.0"
+*OIDInstalledMemory 16MB: "16384 KBytes"
+*OIDInstalledMemory 32MB: "32768 KBytes"
+*OIDInstalledMemory 48MB: "49152 KBytes"
+*OIDInstalledMemory 72MB: "73728 KBytes"
</pre>
-<h3><span class='info'>CUPS 1.3</span>cupsBackSide</h3>
-
-<p class='summary'>*cupsBackSide: keyword</p>
-
-<p>This attribute requests special handling of the back side of pages
-when doing duplexed (2-sided) output. <a href='#TABLE_1'>Table 1</a>
-shows the supported keyword values for this attribute and their affect
-on the raster data sent to your driver. The default value is
-<code>Normal</code>.</p>
-
-<blockquote><b>Note:</b> <tt>cupsBackSide</tt> replaces the older
-<tt>cupsFlipDuplex</tt> attribute - if <tt>cupsBackSide</tt> is
-specified, <tt>cupsFlipDuplex</tt> will be ignored.</blockquote>
-<div class='table'>
-<table width='80%' summary='Back Side Raster Coordinate System'>
-<caption>Table 1: <a name='TABLE_1'>Back Side Raster Coordinate System</a></caption>
-<thead>
-<tr>
- <th>cupsBackSide</th>
- <th>Tumble Value</th>
- <th>Image Presentation</th>
-</tr>
-</thead>
-<tbody>
-<tr>
- <td><code>Normal</code></td>
- <td><code>false</code></td>
- <td>Left-to-right, top-to-bottom</td>
-</tr>
-<tr>
- <td><code>Normal</code></td>
- <td><code>true</code></td>
- <td>Left-to-right, top-to-bottom</td>
-</tr>
-<tr>
- <td><code>ManualTumble</code></td>
- <td><code>false</code></td>
- <td>Left-to-right, top-to-bottom</td>
-</tr>
-<tr>
- <td><code>ManualTumble</code></td>
- <td><code>true</code></td>
- <td>Right-to-left, bottom-to-top</td>
-</tr>
-<tr>
- <td><code>Rotated</code></td>
- <td><code>false</code></td>
- <td>Right-to-left, bottom-to-top</td>
-</tr>
-<tr>
- <td><code>Rotated</code></td>
- <td><code>true</code></td>
- <td>Right-to-left, top-to-bottom</td>
-</tr>
-<tr>
- <td><code>Flipped</code> *</td>
- <td><code>false</code></td>
- <td>Left-to-right, bottom-to-top</td>
-</tr>
-<tr>
- <td><code>Flipped</code> *</td>
- <td><code>true</code></td>
- <td>Right-to-left, top-to-bottom</td>
-</tr>
-</tbody>
-</table>
-</div>
+<h2 class='title'><a name='PROFILES'>Color Profiles</a></h2>
-<p><em>* - Not supported in Mac OS X 10.5.x and earlier</em></p>
+<p>CUPS supports three types of color profiles. The first type is
+based on sRGB and is used by the standard CUPS raster filters and
+ESP Ghostscript. The second type is based on ICC profiles and is
+used by the Quartz-based filters on MacOS X. The final type is
+based on well-known colorspaces such as sRGB and Adobe RGB.</p>
-<p>Examples:</p>
+<blockquote><b>Note:</b>
-<pre class='command'>
-<em>*% Flip the page image for the back side of duplexed output</em>
-*cupsBackSide: Flipped
+<p>At this time, none of the CUPS raster
+filters support ICC profiles. This will be addressed as time
+and resources permit.</p>
-<em>*% Rotate the page image for the back side of duplexed output</em>
-*cupsBackSide: Rotated
-</pre>
+</blockquote>
-<p>Also see the related <tt>APDuplexRequiresFlippedMargin</tt>
-attribute.</p>
+<h3><a name='cupsColorProfile'>cupsColorProfile</a></h3>
-<h3>cupsEvenDuplex</h3>
+<p class='summary'>*cupsColorProfile Resolution/MediaType: "density
+gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
-<p class='summary'>*cupsEvenDuplex: boolean</p>
+<p>This string attribute specifies an sRGB-based color profile
+consisting of gamma and density controls and a 3x3 CMY color
+transform matrix.</p>
-<p>This boolean attribute notifies the RIP filters that the
-destination printer requires an even number of pages when 2-sided
-printing is selected. The default value is <code>false</code>.</p>
+<p>The <i>Resolution</i> and <i>MediaType</i> values may be "-"
+to act as a wildcard. Otherwise they must match one of the
+<tt>Resolution</tt> or <tt>MediaType</tt> attributes defined in
+the PPD file.</p>
-<p>Example:</p>
+<p>The <i>density</i> and <i>gamma</i> values define gamma and
+density adjustment function such that:</p>
<pre class='command'>
-<em>*% Always send an even number of pages when duplexing</em>
-*cupsEvenDuplex: true
+f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
</pre>
-<h3>cupsFax</h3>
-
-<p class='summary'>*cupsFax: boolean</p>
-
-<p>This boolean attribute specifies whether the PPD defines a facsimile device. The default is <tt>false</tt>.</p>
-
-<p>Examples:</p>
+<p>The <i>m00</i> through <i>m22</i> values define a 3x3
+transformation matrix for the CMY color values. The density
+function is applied <i>after</i> the CMY transformation:</p>
<pre class='command'>
-*cupsFax: true
+| m00 m01 m02 |
+| m10 m11 m12 |
+| m20 m21 m22 |
</pre>
-<h3>cupsFilter</h3>
-
-<p class='summary'>*cupsFilter: "source/type cost program"</p>
-
-<p>This string attribute provides a conversion rule from the
-given source type to the printer's native format using the
-filter "program". If a printer supports the source type directly,
-the special filter program "-" may be specified.</p>
-
<p>Examples:</p>
<pre class='command'>
-<em>*% Standard raster printer driver filter</em>
-*cupsFilter: "application/vnd.cups-raster 100 rastertofoo"
+<em>*% Specify a profile for printing at 360dpi on all media types</em>
+*cupsColorProfile 360dpi/-: "1.0 1.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
-<em>*% Plain text filter</em>
-*cupsFilter: "text/plain 10 texttofoo"
+<em>*% Specify a profile for printing at 720dpi on Glossy media</em>
+*cupsColorProfile 720dpi/Glossy: "1.0 2.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
-<em>*% Pass-through filter for PostScript printers</em>
-*cupsFilter: "application/vnd.cups-postscript 0 -"
+<em>*% Specify a default profile for printing at all other resolutions and media types</em>
+*cupsColorProfile -/-: "0.9 2.0 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
</pre>
-<h3><span class='info'>Deprecated</span>cupsFlipDuplex</h3>
+<h3><span class='info'>Mac OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
-<p class='summary'>*cupsFlipDuplex: boolean</p>
-
-<p>Due to implementation differences between Mac OS X and Ghostscript,
-the <tt>cupsFlipDuplex</tt> attribute is deprecated. Instead, use
-the <tt>cupsBackSide</tt> attribute to specify the coordinate
-system (pixel layout) of the page data on the back side of duplex
-pages.</p>
+<p class='summary'>*cupsICCProfile
+ColorModel.MediaType.Resolution/Description: "filename"</p>
-<p>The value <code>true</code> maps to a <tt>cupsBackSide</tt> value
-of <code>Rotated</code> on Mac OS X and <code>Flipped</code> with
-Ghostscript.</p>
+<p>This attribute specifies an ICC color profile that is
+used to convert the document colors to the device
+colorspace. The <tt>ColorModel</tt>, <tt>MediaType</tt>, and
+<tt>Resolution</tt> keywords specify a selector for color
+profiles. If omitted, the color profile will match any option
+keyword for the corresponding main keyword.</p>
-<p>The default value is <code>false</code>.</p>
+<p>The <tt>Description</tt> specifies human-readable text that
+is associated with the color profile. The <tt>filename</tt>
+portion specifies the ICC color profile to use; if the filename
+is not absolute, it is loaded relative to the
+<var>/usr/share/cups/profiles</var> directory.</p>
-<blockquote><b>Note:</b> Mac OS X drivers that previously used
-<tt>cupsFlipDuplex</tt> may wish to provide both the old and
-new attributes for maximum compatibility, for example:
+<p>Examples:</p>
<pre class='command'>
-*cupsBackSide: Rotated
-*cupsFlipDuplex: true
-</pre>
+<em>*% Specify a profile for CMYK printing at 360dpi on all media types</em>
+*cupsICCProfile CMYK..360dpi/360dpi CMYK: "/Library/Printers/vendor/Profiles/foo-360-cmyk.icc"
-Similarly, drivers written for other operating systems using
-Ghostscript can use:
+<em>*% Specify a profile for RGB printing at 720dpi on Glossy media</em>
+*cupsColorProfile RGB.Glossy.720dpi/720dpi Glossy: "/Library/Printers/vendor/Profiles/foo-720-glossy-rgb.icc"
-<pre class='command'>
-*cupsBackSide: Flipped
-*cupsFlipDuplex: true
-</pre></blockquote>
+<em>*% Specify a default profile for printing at all other resolutions and media types</em>
+*cupsICCProfile ../Default: "/Library/Printers/vendor/Profiles/foo-default.icc"
+</pre>
-<h3>cupsIPPFinishings</h3>
+<h4>Customizing the Profile Selection Keywords</h4>
-<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
+<p>The <tt>MediaType</tt> and <tt>Resolution</tt> keywords can be
+reassigned to different main keywords, allowing drivers to do
+color profile selection based on different parameters. The
+<tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt>
+attributes define the mapping from selector to main keyword:</p>
-<p>This attribute defines a mapping from IPP <code>finishings</code>
-values to PPD options and choices.</p>
+<pre class='command'>
+*cupsICCQualifier2: MainKeyword2
+*cupsICCQualifier3: MainKeyword3
+</pre>
-<p>Examples:</p>
+<p>The default mapping is as follows:</p>
<pre class='command'>
-*cupsIPPFinishings 4/staple: "*StapleLocation SinglePortrait"
-*cupsIPPFinishings 5/punch: "*PunchMedia Yes *PunchLocation LeftSide"
-*cupsIPPFinishings 20/staple-top-left: "*StapleLocation SinglePortrait"
-*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape"
+*cupsICCQualifier2: MediaType
+*cupsICCQualifier3: Resolution
</pre>
-<h3>cupsIPPReason</h3>
+<h3><span class='info'>Mac OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
-<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
+<p class='summary'>*<a href='#APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a>: true<br>
+*<a href='#APCustomColorMatchingName'>APCustomColorMatchingName</a> name/text: ""<br>
+*<a href='#APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a>: profile<br>
+*<a href='#APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a>: profile</p>
-<p>This optional attribute maps custom
-<code>printer-state-reasons</code> keywords that are generated by
-the driver to human readable text. The optional URIs string
-contains zero or more URIs separated by a newline. Each URI can
-be a CUPS server absolute path to a help file under the
-scheduler's <code>DocumentRoot</code> directory, a full HTTP URL
-("http://www.domain.com/path/to/help/page.html"), or any other
-valid URI which directs the user at additional information
-concerning the condition that is being reported.</p>
+<p>These attributes tell the Mac OS X raster filters that the printer
+driver provides its own custom color matching and that generic color
+profiles should be used when generating 1-, 3-, and 4-component raster
+data as requested by the driver. The <tt>APCustomColorMatchingProfile</tt>
+and <tt>APDefaultColorMatchingProfile</tt> attributes specify alternate
+color profiles (sRGB or AdobeRGB) to use for 3-color (RGB) raster data.</p>
-<p>Since the reason text is limited to 80 characters by the PPD specification,
-longer text strings can be included by URI-encoding the text with the "text"
-scheme, for example "text:some%20text". Multiple <code>text</code> URIs are
-combined (with spaces between each URI) by the <tt>ppdLocalizeIPPReason</tt>
-into a single string that can be displayed to the user.</p>
+<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
+
+<p class='summary'>*APCustomColorMatchingName name/text: ""</p>
+
+<p>This attribute defines an alternate name for the color matching
+provided by a driver in the <var>Color Matching</var> print panel.
+The default is to use the name "Vendor Matching" or its localized
+equivalent.</p>
<p>Examples:</p>
<pre class='command'>
-<em>*% Map com.vendor-error to text but no page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: ""
+*% Define the names for our color matching...
+*APCustomColorMatchingName name/AcmeColor(tm): ""
+*fr.APCustomColorMatchingName name/La AcmeColor(tm): ""
+</pre>
-<em>*% Map com.vendor-error to more than 80 characters of text but no page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: "text:Now%20is%20the%20time
-text:for%20all%20good%20men%20to%20come%20to%20the%20aid%20of%20their%20country."
+<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
-<em>*% Map com.vendor-error to text and a local page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
+<p class='summary'>*APCustomColorMatchingProfile: name</p>
-<em>*% Map com.vendor-error to text and a remote page</em>
-*cupsIPPReason com.vendor-error/A serious error occurred: "http://www.vendor.com/help"
-
-<em>*% Map com.vendor-error to text and a local, Apple help book, and remote page</em>
-*APHelpBook: "file:///Library/Printers/vendor/Help/filename"
-*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html
-help:anchor='com.vendor-error'%20bookID=Vendor%20Help
-http://www.vendor.com/help"
-*End
-</pre>
+<p>This attribute defines a supported RGB color profile that can be used
+when doing custom color matching. Currently only <tt>sRGB</tt> and
+<tt>AdobeRGB</tt> are supported. If not specified, RGB data will use the
+Generic RGB colorspace.</p>
-<h3>cupsLanguages</h3>
+<blockquote><b>Note:</b>
-<p class='summary'>*cupsLanguages: "locale list"</p>
+<p>If you provide multiple <tt>APCustomColorMatchingProfile</tt> attributes,
+you are responsible for providing the necessary user interface controls to
+select the profile in a <a href='#APDialogExtension'>print dialog pane</a>.
+Add the named profile to the print settings using the key
+<tt>kPMCustomColorMatchingProfileKey</tt>.</p>
-<p>This attribute describes which language localizations are
-included in the PPD. The "locale list" string is a space-delimited
-list of locale names ("en", "en_US", "fr_CA", etc.)</p>
+</blockquote>
-<p>Example:</p>
+<p>Examples:</p>
<pre class='command'>
-<em>*% Specify Canadian, UK, and US English, and Candian and French French</em>
-*cupsLanguages: "en_CA en_UK en_US fr_CA fr_CA"
+*% Use sRGB for RGB color by default, but support both sRGB and AdobeRGB
+*APSupportsCustomColorMatching: true
+*APDefaultCustomColorMatchingProfile: sRGB
+*APCustomColorMatchingProfile: sRGB
+*APCustomColorMatchingProfile: AdobeRGB
</pre>
-<h3>cupsManualCopies</h3>
+<h4><span class='info'>Mac OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
-<p class='summary'>*cupsManualCopies: boolean</p>
+<p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
-<p>This boolean attribute notifies the RIP filters that the
-destination printer does not support copy generation in
-hardware. The default value is <code>false</code>.</p>
+<p>This attribute defines the default RGB color profile that will be used
+when doing custom color matching. Currently only <tt>sRGB</tt> and
+<tt>AdobeRGB</tt> are supported.</p>
-<p>Example:</p>
+<p>Examples:</p>
<pre class='command'>
-<em>*% Tell the RIP filters to generate the copies for us</em>
-*cupsManualCopies: true
+*% Use sRGB for RGB color by default
+*APSupportsCustomColorMatching: true
+*APDefaultCustomColorMatchingProfile: sRGB
</pre>
-<h3>cupsModelNumber</h3>
+<h4><span class='info'>Mac OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
-<p class='summary'>*cupsModelNumber: number</p>
+<p class='summary'>*APSupportsCustomColorMatching: boolean</p>
-<p>This integer attribute specifies a printer-specific model
-number. This number can be used by a filter program to adjust
-the output for a specific model of printer.</p>
+<p>This attribute specifies that the driver provides its own custom color
+matching. When <tt>true</tt>, the default hand-off colorspace will be
+Generic Gray, Generic RGB, or Generic CMYK depending on the number of
+components the driver requests. The <a
+href='#APDefaultCustomColorMatchingProfile'><tt>APDefaultCustomColorMatchingProfile</tt></a>
+attribute can be used to override the default 3-component (RGB) colorspace.</p>
-<p>Example:</p>
+<p>The default for <tt>APSupportsCustomColorMatching</tt> is <tt>false</tt>.</p>
+
+<p>Examples:</p>
<pre class='command'>
-<em>*% Specify an integer for a driver-specific model number</em>
-*cupsModelNumber: 1234
+*APSupportsCustomColorMatching: true
+*APDefaultCustomColorMatchingProfile: sRGB
</pre>
-<h3>cupsPJLCharset</h3>
+<h2 class='title'><a name='I18N'>Globalized PPD Support</a></h2>
-<p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
+<p>CUPS 1.2 and higher adds support for PPD files containing multiple
+languages by following the following additional rules:</p>
-<p>This string attribute specifies the character set that is used
-for strings in PJL commands. If not specified, US-ASCII is
-assumed.</p>
+<ol>
-<p>Example:</p>
+ <li>The <tt>LanguageVersion</tt> MUST be <tt>English</tt></li>
-<pre class='command'>
-<em>*% Specify UTF-8 is used in PJL strings</em>
-*cupsPJLCharset: "UTF-8"
-</pre>
+ <li>The <tt>LanguageEncoding</tt> MUST be <tt>ISOLatin1</tt></li>
+ <li>The <tt>cupsLanguages</tt> attribute MUST be provided and
+ list each of the supported locales in the PPD file</li>
-<h3>cupsPortMonitor</h3>
+ <li>Main and option keywords MUST NOT exceed 34 (instead of 40)
+ characters to allow room for the locale prefixes in translation
+ attributes</li>
-<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
+ <li>The main keyword "Translation" MUST NOT be used</li>
-<p>This string attribute specifies printer-specific "port
-monitor" filters that may be used with the printer. The CUPS
-scheduler also looks for the <tt>Protocols</tt> attribute to see
-if the <tt>BCP</tt> or <tt>TBCP</tt> protocols are supported. If
-so, the corresponding port monitor ("bcp" and "tbcp",
-respectively) is listed in the printer's
-<tt>port-monitor-supported</tt> attribute.</p>
+ <li>Translation strings included with the main and option
+ keywords MUST NOT contain characters outside the ASCII
+ subset of ISOLatin1 and UTF-8; developers wishing to use
+ characters outside ASCII MUST provide a separate set of
+ English localization attributes for the affected keywords.</li>
-<p>The "urischeme" portion of the attribute specifies the URI scheme
-that this port monitor should be used for. Typically this is used to
-pre-select a particular port monitor for each type of connection that
-is supported by the printer. The "port monitor" string can be "none"
-to disable the port monitor for the given URI scheme.</p>
+ <li>Localizations are specified using a locale prefix of
+ the form "ll" or "ll_CC." where "ll" is the 2-letter ISO
+ language code and "CC" is the 2-letter ISO country
+ code<ul>
+ <li>A generic language translation ("ll") SHOULD be provided with country-specific differences ("ll_CC") provided only as needed</li>
+ <li>For historical reasons, the "zh" and "zh_CN" locales map to Simplified Chinese while the "zh_TW" locale maps to Traditional Chinese</li>
+ </ul></li>
-<p>Examples:</p>
+ <li>Locale-specific translation strings MUST be encoded
+ using UTF-8.</li>
-<pre class='command'>
-<em>*% Specify a PostScript printer that supports the TBCP protocol</em>
-*Protocols: TBCP PJL
+ <li>Main keywords MUST be localized using one of the
+ following forms:
+ <p><tt>*ll.Translation MainKeyword/translation
+ text: ""</tt><br />
+ <tt>*ll_CC.Translation MainKeyword/translation
+ text: ""</tt></p></li>
-<em>*% Specify that TBCP should be used for socket connections but not USB</em>
-*cupsPortMonitor socket/AppSocket Printing: "tbcp"
-*cupsPortMonitor usb/USB Printing: "none"
+ <li>Option keywords MUST be localized using one of the
+ following forms:
+ <p><tt>*ll.MainKeyword OptionKeyword/translation
+ text: ""</tt><br />
+ <tt>*ll_CC.MainKeyword OptionKeyword/translation
+ text: ""</tt></p></li>
-<em>*% Specify a printer-specific port monitor for an Epson USB printer</em>
-*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
-</pre>
+ <li>Localization attributes MAY appear anywhere after the
+ first line of the PPD file</li>
-<h3>cupsPreFilter</h3>
+</ol>
-<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
+<blockquote><b>Note:</b>
-<p>This string attribute provides a pre-filter rule. The pre-filter
-program will be inserted in the conversion chain immediately
-before the filter that accepts the given MIME type.</p>
+<p>We use a <tt>LanguageEncoding</tt> value of <tt>ISOLatin1</tt>
+and limit the allowed base translation strings to ASCII to avoid
+character coding issues that would otherwise occur. In addition,
+requiring the base translation strings to be in English allows
+for easier fallback translation when no localization is provided
+in the PPD file for a given locale.</p>
+
+</blockquote>
<p>Examples:</p>
<pre class='command'>
-<em>*% PDF pre-filter</em>
-*cupsPreFilter: "application/pdf 100 mypdfprefilter"
-
-<em>*% PNG pre-filter</em>
-*cupsPreFilter: "image/png 0 mypngprefilter"
-</pre>
-
-<h3>cupsVersion</h3>
+*LanguageVersion: English
+*LanguageEncoding: ISOLatin1
+*cupsLanguages: "de fr_CA"
+*ModelName: "Foobar Laser 9999"
-<p class='summary'>*cupsVersion: major.minor</p>
+<em>*% Localize ModelName for French and German</em>
+*fr_CA.Translation ModelName/La Foobar Laser 9999: ""
+*de.Translation ModelName/Foobar LaserDrucken 9999: ""
-<p>This required attribute describes which version of the CUPS
-PPD file extensions was used. Currently it must be the string
-"1.0", "1.1", or "1.2".</p>
+*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
+<em>*% Localize printer-state-reason for French and German</em>
+*fr_CA.cupsIPPReason com.vendor-error/Une erreur s&egrave;rieuse s'est produite: "/help/com.vendor/error.html"
+*de.cupsIPPReason com.vendor-error/Eine ernste St&ouml;rung trat: "/help/com.vendor/error.html"
-<p>Example:</p>
+...
-<pre class='command'>
-<em>*% Specify a CUPS 1.2 driver</em>
-*cupsVersion: "1.2"
+*OpenUI *InputSlot/Paper Source: PickOne
+*OrderDependency: 10 AnySetup *InputSlot
+*DefaultInputSlot: Auto
+<em>*% Localize InputSlot for French and German</em>
+*fr_CA.Translation InputSlot/Papier source: ""
+*de.Translation InputSlot/Papiereinzug: ""
+*InputSlot Auto/Default: "&lt;&lt;/ManualFeed false&gt;&gt;setpagedevice"
+<em>*% Localize InputSlot=Auto for French and German</em>
+*fr_CA.InputSlot Auto/Par Defaut: ""
+*de.InputSlot Auto/Standard: ""
+*InputSlot Manual/Manual Feed: "&lt;&lt;/ManualFeed true&gt;&gt;setpagedevice"
+<em>*% Localize InputSlot=Manual for French and German</em>
+*fr_CA.InputSlot Manual/Manuel mecanisme de alimentation: ""
+*de.InputSlot Manual/Manueller Einzug: ""
+*CloseUI: *InputSlot
</pre>
+
<h2 class='title'><a name='OPTIONS'>Custom Options</a></h2>
<p>CUPS supports custom options using an extension of the
@@ -566,6 +527,15 @@ option value is "2.0" then CUPS will output the string
</ul>
+<blockquote><b>Note:</b>
+
+<p>Custom options are not directly supported by the Mac OS X Print Dialog
+nor by the CUPS web interface at this time. Vendors that use custom
+options on Mac OS X must provide their own user interface via the
+<a href='#APDialogExtension'><tt>APDialogExtension</tt></a> attribute.</p>
+
+</blockquote>
+
<p>Examples:</p>
<pre class='command'>
@@ -613,214 +583,6 @@ option value is "2.0" then CUPS will output the string
</pre>
-<h2 class='title'><a name='PROFILES'>Color Profiles</a></h2>
-
-<p>CUPS supports two types of color profiles. The first type is
-based on sRGB and is used by the standard CUPS raster filters and
-ESP Ghostscript. The second type is based on ICC profiles and is
-used by the Core Graphics-based filters on MacOS X.</p>
-
-<blockquote><b>Note:</b> At this time, none of the CUPS raster
-filters support ICC profiles. This will be addressed as time
-and resources permit.</blockquote>
-
-<h3>cupsColorProfile</h3>
-
-<p class='summary'>*cupsColorProfile Resolution/MediaType: "density
-gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
-
-<p>This string attribute specifies an sRGB-based color profile
-consisting of gamma and density controls and a 3x3 CMY color
-transform matrix.</p>
-
-<p>The <i>Resolution</i> and <i>MediaType</i> values may be "-"
-to act as a wildcard. Otherwise they must match one of the
-<tt>Resolution</tt> or <tt>MediaType</tt> attributes defined in
-the PPD file.</p>
-
-<p>The <i>density</i> and <i>gamma</i> values define gamma and
-density adjustment function such that:</p>
-
-<pre class='command'>
-f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
-</pre>
-
-<p>The <i>m00</i> through <i>m22</i> values define a 3x3
-transformation matrix for the CMY color values. The density
-function is applied <i>after</i> the CMY transformation:</p>
-
-<pre class='command'>
-| m00 m01 m02 |
-| m10 m11 m12 |
-| m20 m21 m22 |
-</pre>
-
-<p>Examples:</p>
-
-<pre class='command'>
-<em>*% Specify a profile for printing at 360dpi on all media types</em>
-*cupsColorProfile 360dpi/-: "1.0 1.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
-
-<em>*% Specify a profile for printing at 720dpi on Glossy media</em>
-*cupsColorProfile 720dpi/Glossy: "1.0 2.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
-
-<em>*% Specify a default profile for printing at all other resolutions and media types</em>
-*cupsColorProfile -/-: "0.9 2.0 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
-</pre>
-
-<h3>cupsICCProfile</h3>
-
-<p class='summary'>*cupsICCProfile
-ColorModel.MediaType.Resolution/Description: "filename"</p>
-
-<p>This attribute specifies an ICC color profile that is
-used to convert the document colors to the device
-colorspace. The <tt>ColorModel</tt>, <tt>MediaType</tt>, and
-<tt>Resolution</tt> keywords specify a selector for color
-profiles. If omitted, the color profile will match any option
-keyword for the corresponding main keyword.</p>
-
-<p>The <tt>Description</tt> specifies human-readable text that
-is associated with the color profile. The <tt>filename</tt>
-portion specifies the ICC color profile to use; if the filename
-is not absolute, it is loaded relative to the
-<var>/usr/share/cups/profiles</var> directory.</p>
-
-<p>Examples:</p>
-
-<pre class='command'>
-<em>*% Specify a profile for CMYK printing at 360dpi on all media types</em>
-*cupsICCProfile CMYK..360dpi/360dpi CMYK: "vendor/foo-360-cmyk.icc"
-
-<em>*% Specify a profile for RGB printing at 720dpi on Glossy media</em>
-*cupsColorProfile RGB.Glossy.720dpi/720dpi Glossy: "vendor/foo-720-glossy-rgb.icc"
-
-<em>*% Specify a default profile for printing at all other resolutions and media types</em>
-*cupsICCProfile ../Default: "vendor/foo-default.icc"
-</pre>
-
-<h4>Customizing the Profile Selection Keywords</h4>
-
-<p>The <tt>MediaType</tt> and <tt>Resolution</tt> keywords can be
-reassigned to different main keywords, allowing drivers to do
-color profile selection based on different parameters. The
-<tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt>
-attributes define the mapping from selector to main keyword:</p>
-
-<pre class='command'>
-*cupsICCQualifier2: MainKeyword2
-*cupsICCQualifier3: MainKeyword3
-</pre>
-
-<p>The default mapping is as follows:</p>
-
-<pre class='command'>
-*cupsICCQualifier2: MediaType
-*cupsICCQualifier3: Resolution
-</pre>
-
-
-<h2 class='title'><a name='I18N'>Globalized PPD Support</a></h2>
-
-<p>CUPS 1.2 and higher adds support for PPD files containing multiple
-languages by following the following additional rules:</p>
-
-<ol>
-
- <li>The <tt>LanguageVersion</tt> MUST be <tt>English</tt></li>
-
- <li>The <tt>LanguageEncoding</tt> MUST be <tt>ISOLatin1</tt></li>
-
- <li>The <tt>cupsLanguages</tt> attribute MUST be provided and
- list each of the supported locales in the PPD file</li>
-
- <li>Main and option keywords MUST NOT exceed 34 (instead of 40)
- characters to allow room for the locale prefixes in translation
- attributes</li>
-
- <li>The main keyword "Translation" MUST NOT be used</li>
-
- <li>Translation strings included with the main and option
- keywords MUST NOT contain characters outside the ASCII
- subset of ISOLatin1 and UTF-8; developers wishing to use
- characters outside ASCII MUST provide a separate set of
- English localization attributes for the affected keywords.</li>
-
- <li>Localizations are specified using a locale prefix of
- the form "ll" or "ll_CC." where "ll" is the 2-letter ISO
- language code and "CC" is the 2-letter ISO country
- code<ul>
- <li>A generic language translation ("ll") SHOULD be provided with country-specific differences ("ll_CC") provided only as needed</li>
- <li>For historical reasons, the "zh" and "zh_CN" locales map to Simplified Chinese while the "zh_TW" locale maps to Traditional Chinese</li>
- </ul></li>
-
- <li>Locale-specific translation strings MUST be encoded
- using UTF-8.</li>
-
- <li>Main keywords MUST be localized using one of the
- following forms:
- <p><tt>*ll.Translation MainKeyword/translation
- text: ""</tt><br />
- <tt>*ll_CC.Translation MainKeyword/translation
- text: ""</tt></p></li>
-
- <li>Option keywords MUST be localized using one of the
- following forms:
- <p><tt>*ll.MainKeyword OptionKeyword/translation
- text: ""</tt><br />
- <tt>*ll_CC.MainKeyword OptionKeyword/translation
- text: ""</tt></p></li>
-
- <li>Localization attributes MAY appear anywhere after the
- first line of the PPD file</li>
-
-</ol>
-
-<blockquote><b>Note:</b>
-We use a <tt>LanguageEncoding</tt> value of <tt>ISOLatin1</tt>
-and limit the allowed base translation strings to ASCII to avoid
-character coding issues that would otherwise occur. In addition,
-requiring the base translation strings to be in English allows
-for easier fallback translation when no localization is provided
-in the PPD file for a given locale.</blockquote>
-
-<p>Examples:</p>
-
-<pre class='command'>
-*LanguageVersion: English
-*LanguageEncoding: ISOLatin1
-*cupsLanguages: "de fr_CA"
-*ModelName: "Foobar Laser 9999"
-
-<em>*% Localize ModelName for French and German</em>
-*fr_CA.Translation ModelName/La Foobar Laser 9999: ""
-*de.Translation ModelName/Foobar LaserDrucken 9999: ""
-
-*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
-<em>*% Localize printer-state-reason for French and German</em>
-*fr_CA.cupsIPPReason com.vendor-error/Une erreur s&egrave;rieuse s'est produite: "/help/com.vendor/error.html"
-*de.cupsIPPReason com.vendor-error/Eine ernste St&ouml;rung trat: "/help/com.vendor/error.html"
-
-...
-
-*OpenUI *InputSlot/Paper Source: PickOne
-*OrderDependency: 10 AnySetup *InputSlot
-*DefaultInputSlot: Auto
-<em>*% Localize InputSlot for French and German</em>
-*fr_CA.Translation InputSlot/Papier source: ""
-*de.Translation InputSlot/Papiereinzug: ""
-*InputSlot Auto/Default: "&lt;&lt;/ManualFeed false&gt;&gt;setpagedevice"
-<em>*% Localize InputSlot=Auto for French and German</em>
-*fr_CA.InputSlot Auto/Par Defaut: ""
-*de.InputSlot Auto/Standard: ""
-*InputSlot Manual/Manual Feed: "&lt;&lt;/ManualFeed true&gt;&gt;setpagedevice"
-<em>*% Localize InputSlot=Manual for French and German</em>
-*fr_CA.InputSlot Manual/Manuel mecanisme de alimentation: ""
-*de.InputSlot Manual/Manueller Einzug: ""
-*CloseUI: *InputSlot
-</pre>
-
-
<h2 class='title'><a name='RASTERPS'>Writing PostScript Option Commands for Raster Drivers</a></h2>
<p>PPD files are used for both PostScript and non-PostScript printers. For CUPS raster drivers, you use a subset of the PostScript language to set page device attributes such as page size, resolution, and so forth. For example, the following code sets the page size to A4 size:</p>
@@ -850,7 +612,7 @@ in the PPD file for a given locale.</blockquote>
<p>The resulting dictionary sets the page device attributes that are sent to your raster driver in the page header.</p>
-<h3>Custom Page Size Code</h3>
+<h3>Custom Page Size Code</a></h3>
<p>There are many possible implementations of the <tt>CustomPageSize</tt> code. For CUPS raster drivers, the following code is recommended:</p>
@@ -863,7 +625,7 @@ in the PPD file for a given locale.</blockquote>
*CustomPageSize True: "pop pop pop &lt;&lt;/PageSize[5 -2 roll]/ImagingBBox null&gt;&gt;setpagedevice"
</pre>
-<h3>Supported PostScript Operators</h3>
+<h3>Supported PostScript Operators</a></h3>
<p>CUPS supports the following PostScript operators in addition to the usual PostScript number, string (literal and hex-encoded), boolean, null, and name values:</p>
@@ -891,7 +653,16 @@ in the PPD file for a given locale.</blockquote>
</ul>
-<blockquote><b>Note:</b> <em>Never<em> use the unsupported <tt>dict</tt> or <tt>put</tt> operators in your option code. These operators are typically used in option code dating back to Level 1 PostScript printers, which did not support the simpler <tt>&lt;&lt;</tt> or <tt>&gt;&gt;</tt> operators. If you have old option code using <tt>dict</tt> or <tt>put</tt>, you can rewrite it very easily to use the newer <tt>&lt;&lt;</tt> and <tt>&gt;&gt;</tt> operators instead. For example, the following code to set the page size:
+<blockquote><b>Note:</b>
+
+<p><em>Never</em> use the unsupported <tt>dict</tt> or <tt>put</tt>
+operators in your option code. These operators are typically used in
+option code dating back to Level 1 PostScript printers, which did not
+support the simpler <tt>&lt;&lt;</tt> or <tt>&gt;&gt;</tt> operators.
+If you have old option code using <tt>dict</tt> or <tt>put</tt>, you can
+rewrite it very easily to use the newer <tt>&lt;&lt;</tt> and
+<tt>&gt;&gt;</tt> operators instead. For example, the following code
+to set the page size:</p>
<style type='text/css'><!--
PRE B {
@@ -913,7 +684,7 @@ PRE B {
</blockquote>
-<h3>Supported Page Device Attributes</h3>
+<h3>Supported Page Device Attributes</a></h3>
<p>Table 2 shows the supported page device attributes along with PostScript code examples.</p>
@@ -1179,9 +950,646 @@ PRE B {
</table></div>
+<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+
+<p class='summary'>*cupsBackSide: keyword</p>
+
+<p>This attribute requests special handling of the back side of pages
+when doing duplexed (2-sided) output. <a href='#TABLE_1'>Table 1</a>
+shows the supported keyword values for this attribute and their effect
+on the raster data sent to your driver. For example, when <tt>cupsBackSide</tt>
+is <code>Rotated</code> and <tt>Tumble</tt> is <tt>false</tt>, your driver
+will receive print data starting at the bottom right corner of the page, with
+each line going right-to-left instead of left-to-right. The default value is
+<code>Normal</code>.</p>
+
+<blockquote><b>Note:</b>
+
+<p><tt>cupsBackSide</tt> replaces the older <tt>cupsFlipDuplex</tt>
+attribute - if <tt>cupsBackSide</tt> is specified, <tt>cupsFlipDuplex</tt>
+will be ignored.</p>
+
+</blockquote>
+
+<div class='table'>
+<table width='80%' summary='Back Side Raster Coordinate System'>
+<caption>Table 1: <a name='TABLE_1'>Back Side Raster Coordinate System</a></caption>
+<thead>
+<tr>
+ <th>cupsBackSide</th>
+ <th>Tumble Value</th>
+ <th>Image Presentation</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td><code>Normal</code></td>
+ <td><code>false</code></td>
+ <td>Left-to-right, top-to-bottom</td>
+</tr>
+<tr>
+ <td><code>Normal</code></td>
+ <td><code>true</code></td>
+ <td>Left-to-right, top-to-bottom</td>
+</tr>
+<tr>
+ <td><code>ManualTumble</code></td>
+ <td><code>false</code></td>
+ <td>Left-to-right, top-to-bottom</td>
+</tr>
+<tr>
+ <td><code>ManualTumble</code></td>
+ <td><code>true</code></td>
+ <td>Right-to-left, bottom-to-top</td>
+</tr>
+<tr>
+ <td><code>Rotated</code></td>
+ <td><code>false</code></td>
+ <td>Right-to-left, bottom-to-top</td>
+</tr>
+<tr>
+ <td><code>Rotated</code></td>
+ <td><code>true</code></td>
+ <td>Right-to-left, top-to-bottom</td>
+</tr>
+<tr>
+ <td><code>Flipped</code> *</td>
+ <td><code>false</code></td>
+ <td>Left-to-right, bottom-to-top</td>
+</tr>
+<tr>
+ <td><code>Flipped</code> *</td>
+ <td><code>true</code></td>
+ <td>Right-to-left, top-to-bottom</td>
+</tr>
+</tbody>
+</table>
+</div>
+
+<p><em>* - Not supported in Mac OS X 10.5.x and earlier</em></p>
+
+<div class='figure'><table summary='Back side images'>
+<caption>Figure 1: Back side images</caption>
+<tr><td><img src='../images/raster.png' width='624' height='448' alt='Back side images'></td></tr>
+</table></div>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Flip the page image for the back side of duplexed output</em>
+*cupsBackSide: Flipped
+
+<em>*% Rotate the page image for the back side of duplexed output</em>
+*cupsBackSide: Rotated
+</pre>
+
+<p>Also see the related <a href='#APDuplexRequiresFlippedMargin'><tt>APDuplexRequiresFlippedMargin</tt></a>
+attribute.</p>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+
+<p class='summary'>*cupsEvenDuplex: boolean</p>
+
+<p>This boolean attribute notifies the RIP filters that the
+destination printer requires an even number of pages when 2-sided
+printing is selected. The default value is <code>false</code>.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Always send an even number of pages when duplexing</em>
+*cupsEvenDuplex: true
+</pre>
+
+<h3><a name='cupsFax'>cupsFax</a></h3>
+
+<p class='summary'>*cupsFax: boolean</p>
+
+<p>This boolean attribute specifies whether the PPD defines a facsimile device. The default is <tt>false</tt>.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*cupsFax: true
+</pre>
+
+<h3><a name='cupsFilter'>cupsFilter</a></h3>
+
+<p class='summary'>*cupsFilter: "source/type cost program"</p>
+
+<p>This string attribute provides a conversion rule from the
+given source type to the printer's native format using the
+filter "program". If a printer supports the source type directly,
+the special filter program "-" may be specified.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Standard raster printer driver filter</em>
+*cupsFilter: "application/vnd.cups-raster 100 rastertofoo"
+
+<em>*% Plain text filter</em>
+*cupsFilter: "text/plain 10 texttofoo"
+
+<em>*% Pass-through filter for PostScript printers</em>
+*cupsFilter: "application/vnd.cups-postscript 0 -"
+</pre>
+
+<h3><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
+
+<p class='summary'>*cupsFlipDuplex: boolean</p>
+
+<p>Due to implementation differences between Mac OS X and Ghostscript,
+the <tt>cupsFlipDuplex</tt> attribute is deprecated. Instead, use
+the <a href='#cupsBackSide'><tt>cupsBackSide</tt></a> attribute to specify
+the coordinate system (pixel layout) of the page data on the back side of
+duplex pages.</p>
+
+<p>The value <code>true</code> maps to a <tt>cupsBackSide</tt> value
+of <code>Rotated</code> on Mac OS X and <code>Flipped</code> with
+Ghostscript.</p>
+
+<p>The default value is <code>false</code>.</p>
+
+<blockquote><b>Note:</b>
+
+<p>Mac OS X drivers that previously used
+<tt>cupsFlipDuplex</tt> may wish to provide both the old and
+new attributes for maximum compatibility, for example:</p>
+
+<pre class='command'>
+*cupsBackSide: Rotated
+*cupsFlipDuplex: true
+</pre>
+
+<p>Similarly, drivers written for other operating systems using
+Ghostscript can use:</p>
+
+<pre class='command'>
+*cupsBackSide: Flipped
+*cupsFlipDuplex: true
+</pre></blockquote>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+
+<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
+
+<p>This attribute defines a mapping from IPP <code>finishings</code>
+values to PPD options and choices.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*cupsIPPFinishings 4/staple: "*StapleLocation SinglePortrait"
+*cupsIPPFinishings 5/punch: "*PunchMedia Yes *PunchLocation LeftSide"
+*cupsIPPFinishings 20/staple-top-left: "*StapleLocation SinglePortrait"
+*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape"
+</pre>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+
+<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
+
+<p>This optional attribute maps custom
+<code>printer-state-reasons</code> keywords that are generated by
+the driver to human readable text. The optional URIs string
+contains zero or more URIs separated by a newline. Each URI can
+be a CUPS server absolute path to a help file under the
+scheduler's <code>DocumentRoot</code> directory, a full HTTP URL
+("http://www.domain.com/path/to/help/page.html"), or any other
+valid URI which directs the user at additional information
+concerning the condition that is being reported.</p>
+
+<p>Since the reason text is limited to 80 characters by the PPD specification,
+longer text strings can be included by URI-encoding the text with the "text"
+scheme, for example "text:some%20text". Multiple <code>text</code> URIs are
+combined (with spaces between each URI) by the <tt>ppdLocalizeIPPReason</tt>
+into a single string that can be displayed to the user.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Map com.vendor-error to text but no page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: ""
+
+<em>*% Map com.vendor-error to more than 80 characters of text but no page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: "text:Now%20is%20the%20time
+text:for%20all%20good%20men%20to%20come%20to%20the%20aid%20of%20their%20country."
+
+<em>*% Map com.vendor-error to text and a local page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html"
+
+<em>*% Map com.vendor-error to text and a remote page</em>
+*cupsIPPReason com.vendor-error/A serious error occurred: "http://www.vendor.com/help"
+
+<em>*% Map com.vendor-error to text and a local, Apple help book, and remote page</em>
+*APHelpBook: "file:///Library/Printers/vendor/Help/filename"
+*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html
+help:anchor='com.vendor-error'%20bookID=Vendor%20Help
+http://www.vendor.com/help"
+*End
+</pre>
+
+<h3><span class='info'>CUPS 1.2</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+
+<p class='summary'>*cupsLanguages: "locale list"</p>
+
+<p>This attribute describes which language localizations are
+included in the PPD. The "locale list" string is a space-delimited
+list of locale names ("en", "en_US", "fr_CA", etc.)</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify Canadian, UK, and US English, and Candian and French French</em>
+*cupsLanguages: "en_CA en_UK en_US fr_CA fr_CA"
+</pre>
+
+<h3><a name='cupsManualCopies'>cupsManualCopies</a></h3>
+
+<p class='summary'>*cupsManualCopies: boolean</p>
+
+<p>This boolean attribute notifies the RIP filters that the
+destination printer does not support copy generation in
+hardware. The default value is <code>false</code>.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Tell the RIP filters to generate the copies for us</em>
+*cupsManualCopies: true
+</pre>
+
+<h3><a name='cupsModelNumber'>cupsModelNumber</a></h3>
+
+<p class='summary'>*cupsModelNumber: number</p>
+
+<p>This integer attribute specifies a printer-specific model
+number. This number can be used by a filter program to adjust
+the output for a specific model of printer.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify an integer for a driver-specific model number</em>
+*cupsModelNumber: 1234
+</pre>
+
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+
+<p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
+
+<p>This string attribute specifies the character set that is used
+for strings in PJL commands. If not specified, US-ASCII is
+assumed.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify UTF-8 is used in PJL strings</em>
+*cupsPJLCharset: "UTF-8"
+</pre>
+
+
+<h3><span class='info'>CUPS 1.2</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+
+<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
+
+<p>This string attribute specifies printer-specific "port
+monitor" filters that may be used with the printer. The CUPS
+scheduler also looks for the <tt>Protocols</tt> attribute to see
+if the <tt>BCP</tt> or <tt>TBCP</tt> protocols are supported. If
+so, the corresponding port monitor ("bcp" and "tbcp",
+respectively) is listed in the printer's
+<tt>port-monitor-supported</tt> attribute.</p>
+
+<p>The "urischeme" portion of the attribute specifies the URI scheme
+that this port monitor should be used for. Typically this is used to
+pre-select a particular port monitor for each type of connection that
+is supported by the printer. The "port monitor" string can be "none"
+to disable the port monitor for the given URI scheme.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Specify a PostScript printer that supports the TBCP protocol</em>
+*Protocols: TBCP PJL
+
+<em>*% Specify that TBCP should be used for socket connections but not USB</em>
+*cupsPortMonitor socket/AppSocket Printing: "tbcp"
+*cupsPortMonitor usb/USB Printing: "none"
+
+<em>*% Specify a printer-specific port monitor for an Epson USB printer</em>
+*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
+</pre>
+
+<h3><span class='info'>CUPS 1.3</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+
+<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
+
+<p>This string attribute provides a pre-filter rule. The pre-filter
+program will be inserted in the conversion chain immediately
+before the filter that accepts the given MIME type.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% PDF pre-filter</em>
+*cupsPreFilter: "application/pdf 100 mypdfprefilter"
+
+<em>*% PNG pre-filter</em>
+*cupsPreFilter: "image/png 0 mypngprefilter"
+</pre>
+
+<h3><a name='cupsVersion'>cupsVersion</a></h3>
+
+<p class='summary'>*cupsVersion: major.minor</p>
+
+<p>This required attribute describes which version of the CUPS
+PPD file extensions was used. Currently it must be the string
+"1.0", "1.1", "1.2", or "1.3".</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Specify a CUPS 1.2 driver</em>
+*cupsVersion: "1.2"
+</pre>
+
+
+<h2 class='title'><a name='MACOSX'>Mac OS X Attributes</a></h2>
+
+<h3><a name='APBookFile'>APBookFile</a></h3>
+
+<p class='summary'>*APBookFile: "file URL"</p>
+
+<p>This string attribute specifies the Apple help book file to use when
+looking up IPP reason codes for this printer driver. The
+<a href='#cupsIPPReason'><tt>cupsIPPReason</tt></a> attribute maps
+"help" URIs to this file.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+*APBookFile: "file:///Library/Printers/vendor/Help/filename"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+
+<p class='summary'>*APDialogExtension: "/Library/Printers/vendor/filename.plugin"</p>
+
+<p>This attribute defines additional option panes that are displayed in the
+print dialog. Each attribute adds one or more option panes. See the "OutputBinsPDE"
+example and <a href='http://developer.apple.com/qa/qa2004/qa1352.html'>Apple
+Technical Q&amp;A QA1352</a> for information on writing your own print dialog
+plug-ins.</p>
+
+<blockquote><b>Note:</b>
+
+<p>Starting with Mac OS X 10.5, each plug-in must be compiled "4-way fat"
+(32-bit and 64-bit for both PowerPC and Intel) with garbage collection enabled
+in order to be usable with all applications.</p>
+
+</blockquote>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Add two panes for finishing and driver options
+*APDialogExtension: "/Library/Printers/vendor/finishing.plugin"
+*APDialogExtension: "/Library/Printers/vendor/options.plugin"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+
+<p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
+
+<p>This boolean attribute notifies the RIP filters that the
+destination printer requires the top and bottom margins of the
+<tt>ImageableArea</tt> to be swapped for the back page. The
+default is <tt>true</tt> when <tt>cupsBackSide</tt> is <tt>Flipped</tt>
+and <tt>false</tt> otherwise. <a href='#TABLE_2'>Table 2</a> shows how
+<tt>APDuplexRequiresFlippedMargin</tt> interacts with <tt>cupsBackSide</tt>
+and the <tt>Tumble</tt> page attribute.</p>
+
+<div class='table'>
+<table width='80%' summary='Margin Flipping Modes'>
+<caption>Table 2: <a name='TABLE_2'>Margin Flipping Modes</a></caption>
+<thead>
+<tr>
+ <th>APDuplexRequiresFlippedMargin</th>
+ <th>cupsBackSide</th>
+ <th>Tumble Value</th>
+ <th>Margins</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>false</td>
+ <td>any</td>
+ <td>any</td>
+ <td>Normal</td>
+</tr>
+<tr>
+ <td>any</td>
+ <td>Normal</td>
+ <td>any</td>
+ <td>Normal</td>
+</tr>
+<tr>
+ <td>true</td>
+ <td>ManualDuplex</td>
+ <td>false</td>
+ <td>Normal</td>
+</tr>
+<tr>
+ <td>true</td>
+ <td>ManualDuplex</td>
+ <td>true</td>
+ <td>Flipped</td>
+</tr>
+<tr>
+ <td>true</td>
+ <td>Rotated</td>
+ <td>false</td>
+ <td>Flipped</td>
+</tr>
+<tr>
+ <td>true</td>
+ <td>Rotated</td>
+ <td>true</td>
+ <td>Normal</td>
+</tr>
+<tr>
+ <td>true or unspecified</td>
+ <td>Flipped</td>
+ <td>any</td>
+ <td>Flipped</td>
+</tr>
+</tbody>
+</table></div>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Rotate the back side images</em>
+*cupsBackSide: Rotated
+
+<em>*% Don't swap the top and bottom margins for the back side</em>
+*APDuplexRequiresFlippedMargin: false
+</pre>
+
+<p>Also see the related <a href='#cupsBackSide'><tt>cupsBackSide</tt></a>
+attribute.</p>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+
+<p class='summary'>*APPrinterIconPath: "/Library/Printers/vendor/filename"</p>
+
+<p>This attribute defines the location of a printer icon file to use when
+displaying the printer.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Apple icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.icns"
+
+*% TIFF icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.tiff"
+
+*% PNG icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.png"
+
+*% JPEG icon file
+*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.jpg"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+
+<p class='summary'>*APPrinterLowInkTool: "/Library/Printers/vendor/program"</p>
+
+<p>This attribute defines an program that checks the ink/toner/marker levels
+on a printer, returning an XML document with those levels. See the "InkTool"
+example and
+<a href='http://developer.apple.com/technotes/tn2005/tn2144.html'>Apple
+Technical Note TN2144</a> for more information.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Use a vendor monitoring program
+*APPrinterLowInkTool: "/Library/Printers/vendor/Tools/lowinktool"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+
+<p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
+
+<p>This attribute defines presets for multiple options that show up
+in the print dialog of applications (such as iPhoto) that set the job
+style hint to <tt>NSPrintPhotoJobStyleHint</tt>. Each preset maps to one or
+more pairs of PPD options and choices as well as providing key/value data for
+the application. The following preset names are currently defined:</p>
+
+<ul>
+
+ <li><code>Photo_with_Paper_Auto-Detect</code>; Photo printing
+ with paper auto-detect</li>
+
+ <li><code>Photo_with_Paper_Auto-Detect_-_Fine</code>; Photo printing
+ with paper auto-detect - fine</li>
+
+ <li><code>Photo_on_Plain_Paper</code>; Photo printing on plain paper</li>
+
+ <li><code>Photo_on_Plain_Paper_-_Fine</code>; Photo printing on plain
+ paper - fine</li>
+
+ <li><code>Photo_on_Photo_Paper</code>; Photo printing on photo paper</li>
+
+ <li><code>Photo_on_Photo_Paper_-_Fine</code>; Photo printing on photo
+ paper - fine</li>
+
+ <li><code>Photo_on_Matte_Paper</code>; Photo printing on matte paper</li>
+
+ <li><code>Photo_on_Matte_Paper_-_Fine</code>; Photo printing on matte
+ paper - fine</li>
+
+</ul>
+
+<p>The value string consists of pairs of keywords, either an option name and
+choice (*MainKeyword OptionKeyword) or a preset identifier and value
+(com.apple.print.preset.foo value). Preset identifiers and their supported
+values are documented in "<a
+href='http://developer.apple.com/documentation/Printing/Conceptual/PresetDraft/presets_intro/chapter_1_section_2.html'
+>Creating Printing Presets for iPhoto: Printing Presets File Format</a>".</p>
+
+<p>Presets, like options, can also be localized in multiple languages.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*APPrinterPreset Photo_on_Photo_Paper/Photo on Photo Paper: "
+ *MediaType Glossy
+ *ColorModel RGB
+ *Resolution 300dpi
+ com.apple.print.preset.graphicsType Photo
+ com.apple.print.preset.quality mid
+ com.apple.print.preset.media-front-coating glossy"
+*End
+*fr.APPrinterPreset Photo_on_Photo_Paper/Photo sur papier photographique: ""
+</pre>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+
+<p class='summary'>*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/filename.app"</p>
+
+<p>This attribute defines a GUI application that can be used to do printer
+maintenance functions such as cleaning the print head(s). See ... for more
+information.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*% Define the printer utility application
+*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/Tools/utility.app"
+</pre>
+
+<h3><span class='info'>Mac OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+
+<p class='summary'>*APScanAppBundleID: "bundle ID"</p>
+
+<p>This attribute defines the application to use when scanning pages from
+the device.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+*APScanAppBundleID: "com.apple.ImageCaptureApp"
+</pre>
+
+
<h2 class='title'><a name='HISTORY'>Change History</a></h2>
-<h3>Changes in CUPS 1.3</h3>
+<h3>Changes in CUPS 1.3.1</a></h3>
+
+<ul>
+
+ <li>Added missing Mac OS X <tt>AP</tt> attributes.</li>
+
+ <li>Added section on auto-configuration including the
+ <tt>OID<i>MainKeyword</i></tt> and <tt>?<i>MainKeyword</i></tt>
+ attributes.</li>
+
+ <li>Minor reorganization.</li>
+
+</ul>
+
+
+<h3>Changes in CUPS 1.3</a></h3>
<ul>
@@ -1195,7 +1603,7 @@ PRE B {
</ul>
-<h3>Changes in CUPS 1.2.8</h3>
+<h3>Changes in CUPS 1.2.8</a></h3>
<ul>
@@ -1204,7 +1612,7 @@ PRE B {
</ul>
-<h3>Changes in CUPS 1.2</h3>
+<h3>Changes in CUPS 1.2</a></h3>
<ul>
@@ -1228,7 +1636,7 @@ PRE B {
</ul>
-<h3>Changes in CUPS 1.1</h3>
+<h3>Changes in CUPS 1.1</a></h3>
<ul>
diff --git a/doc/help/translation.html b/doc/help/translation.html
index 320573495..6724683ea 100644
--- a/doc/help/translation.html
+++ b/doc/help/translation.html
@@ -187,6 +187,10 @@ translated buttons.</P>
<TD>Export Printers to Samba</TD>
</TR>
<TR>
+ <TD>button-find-new-printers.gif</TD>
+ <TD>Find New Printers</TD>
+</TR>
+<TR>
<TD>button-help.gif</TD>
<TD>Help</TD>
</TR>
@@ -379,7 +383,14 @@ message catalog and then make any necessary changes.</P>
favorite text editor or translation program to translate the text
to the desired language.</P>
-<P>Finally, add your locale to the <CODE>LANGUAGES</CODE>
+<P>Then validate your translation using the <VAR>locale/checkpo</VAR> utility:</P>
+
+<PRE CLASS="command">
+cd locale
+./checkpo cups_ll_CC.po
+</PRE>
+
+<P>After fixing any errors in your translation, add your locale to the <CODE>LANGUAGES</CODE>
variable in the <VAR>Makedefs</VAR> file and run the "make
install" command in the <VAR>locale</VAR> subdirectory to test
the translation.</P>
@@ -556,6 +567,10 @@ translated all of the templates, add the locale to the
jobs list.</TD>
</TR>
<TR>
+ <TD>list-available-printers.tmpl</TD>
+ <TD>This template shows a list of new printers that have been found.</TD>
+</TR>
+<TR>
<TD>maintenance.tmpl</TD>
<TD>This template shows "maintenance commands sent".</TD>
</TR>
@@ -917,6 +932,10 @@ supported <CODE>OP</CODE> values.</P>
<TD>Exports printers to Samba.</TD>
</TR>
<TR>
+ <TD>find-new-printers</TD>
+ <TD>Find new printers that have not yet been added.</TD>
+</TR>
+<TR>
<TD>modify-class</TD>
<TD>Modifies a printer class.</TD>
</TR>
diff --git a/filter/pstops.c b/filter/pstops.c
index b51dd1467..0b0844aed 100644
--- a/filter/pstops.c
+++ b/filter/pstops.c
@@ -1,5 +1,5 @@
/*
- * "$Id: pstops.c 6757 2007-08-01 22:30:05Z mike $"
+ * "$Id: pstops.c 6759 2007-08-02 04:10:23Z mike $"
*
* PostScript filter for the Common UNIX Printing System (CUPS).
*
@@ -3351,5 +3351,5 @@ write_labels(pstops_doc_t *doc, /* I - Document information */
/*
- * End of "$Id: pstops.c 6757 2007-08-01 22:30:05Z mike $".
+ * End of "$Id: pstops.c 6759 2007-08-02 04:10:23Z mike $".
*/
diff --git a/filter/rastertolabel.c b/filter/rastertolabel.c
index e9b7bcbf3..dbddf812f 100644
--- a/filter/rastertolabel.c
+++ b/filter/rastertolabel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rastertolabel.c 6718 2007-07-25 00:02:41Z mike $"
+ * "$Id: rastertolabel.c 6820 2007-08-20 21:15:28Z mike $"
*
* Label printer filter for the Common UNIX Printing System (CUPS).
*
@@ -660,7 +660,8 @@ EndPage(ppd_file_t *ppd, /* I - PPD file */
* End the label and eject...
*/
- puts("^XZ");
+ puts("^IDR:CUPS.GRF^FS");
+ puts("^XZ");
/*
* Free compression buffers...
@@ -1299,5 +1300,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: rastertolabel.c 6718 2007-07-25 00:02:41Z mike $".
+ * End of "$Id: rastertolabel.c 6820 2007-08-20 21:15:28Z mike $".
*/
diff --git a/locale/Makefile b/locale/Makefile
index 8e3abb3ff..7dddf9843 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6707 2007-07-23 17:49:41Z mike $"
+# "$Id: Makefile 6926 2007-09-06 14:34:31Z mike $"
#
# Locale file makefile for the Common UNIX Printing System (CUPS).
#
@@ -16,8 +16,8 @@
include ../Makedefs
-OBJS = po2strings.o strings2po.o translate.o
-TARGETS = po2strings strings2po translate
+OBJS = checkpo po2strings.o strings2po.o translate.o
+TARGETS = checkpo po2strings strings2po translate
#
@@ -96,6 +96,18 @@ pot:
#
+# checkpo - A simple utility to check PO files for correct translation
+# strings.
+#
+# checkpo filename.po [... filenameN.po]
+#
+
+checkpo: checkpo.o ../cups/$(LIBCUPS)
+ echo Linking $<...
+ $(CC) $(LDFLAGS) -o checkpo checkpo.o $(LIBS)
+
+
+#
# po2strings - A simple utility which uses iconv to convert GNU gettext
# message catalogs to Mac OS X .strings files.
#
@@ -139,5 +151,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6707 2007-07-23 17:49:41Z mike $".
+# End of "$Id: Makefile 6926 2007-09-06 14:34:31Z mike $".
#
diff --git a/locale/cups_da.po b/locale/cups_da.po
index efa5ffb1b..efe605bfc 100644
--- a/locale/cups_da.po
+++ b/locale/cups_da.po
@@ -675,7 +675,7 @@ msgstr "ERROR: Værdi for lysstyrke %s ikke understøttet, bruger lysstyrke=100!
msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
msgstr "ERROR: Værdi for gamma %s ikke understøttet, bruger gamma=1000!\n"
msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: Værdi for number-up %s ikke understøttet, bruger number-up=1!\n"
+msgstr "ERROR: Værdi for number-up %d ikke understøttet, bruger number-up=1!\n"
msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
msgstr "ERROR: Værdi for number-up-layout %s ikke understøttet, bruger number-up-layout=lrtb!\n"
msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
@@ -1203,33 +1203,33 @@ msgstr "Brug: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\
msgid "Usage: snmp [host-or-ip-address]\n"
msgstr "Brug: snmp [host-or-ip-address]\n"
msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "ADVARSEL: Boolesk forventet for muligheden waiteof \"%s\"\n"
+msgstr "WARNING: Boolesk forventet for muligheden waiteof \"%s\"\n"
msgid "WARNING: Couldn't create read channel\n"
-msgstr "ADVARSEL: Kunne ikke oprette læsekanal\n"
+msgstr "WARNING: Kunne ikke oprette læsekanal\n"
msgid "WARNING: Couldn't create side channel\n"
-msgstr "ADVARSEL: Kunne ikke oprette sidekanal\n"
+msgstr "WARNING: Kunne ikke oprette sidekanal\n"
msgid "WARNING: Failed to read side-channel request!\n"
-msgstr "ADVARSEL: Kunne ikke læse anmodningen om side-channel!\n"
+msgstr "WARNING: Kunne ikke læse anmodningen om side-channel!\n"
msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
-msgstr "ADVARSEL: Muligheden \"%s\" kan ikke inkluderes via IncludeFeature!\n"
+msgstr "WARNING: Muligheden \"%s\" kan ikke inkluderes via IncludeFeature!\n"
msgid "WARNING: Remote host did not respond with command status byte after %d seconds!\n"
-msgstr "ADVARSEL: Ekstern vært svarede ikke med kommandostatus-byte efter %d sekunder!\n"
+msgstr "WARNING: Ekstern vært svarede ikke med kommandostatus-byte efter %d sekunder!\n"
msgid "WARNING: Remote host did not respond with control status byte after %d seconds!\n"
-msgstr "ADVARSEL: Ekstern vært svarede ikke med kontrolstatus-byte efter %d sekunder!\n"
+msgstr "WARNING: Ekstern vært svarede ikke med kontrolstatus-byte efter %d sekunder!\n"
msgid "WARNING: Remote host did not respond with data status byte after %d seconds!\n"
-msgstr "ADVARSEL: Ekstern vært svarede ikke med datastatus-byte efter %d sekunder!\n"
+msgstr "WARNING: Ekstern vært svarede ikke med datastatus-byte efter %d sekunder!\n"
msgid "WARNING: SCSI command timed out (%d); retrying...\n"
-msgstr "ADVARSEL: Timeout i SCSI-kommando (%d); prøver igen...\n"
+msgstr "WARNING: Timeout i SCSI-kommando (%d); prøver igen...\n"
msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
-msgstr "ADVARSEL: Dette dokument overholder ikke Adobe Document Structuring Conventions og udskrives muligvis ikke korrekt!\n"
+msgstr "WARNING: Dette dokument overholder ikke Adobe Document Structuring Conventions og udskrives muligvis ikke korrekt!\n"
msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "ADVARSEL: Ukendt valg \&quot;%s\&quot; til muligheden \&quot;%s\&quot;!\n"
+msgstr "WARNING: Ukendt valg \&quot;%s\&quot; til muligheden \&quot;%s\&quot;!\n"
msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "ADVARSEL: Ukendt mulighed \&quot;%s\&quot;!\n"
+msgstr "WARNING: Ukendt mulighed \&quot;%s\&quot;!\n"
msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "ADVARSEL: Ikke understøttet baudhastighed %s!\n"
+msgstr "WARNING: Ikke understøttet baudhastighed %s!\n"
msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
-msgstr "ADVARSEL: Kan gendannes: Netværksværten '%s' er i brug; prøver igen om ´%d sekunder...\n"
+msgstr "WARNING: Kan gendannes: Netværksværten '%s' er i brug; prøver igen om ´%d sekunder...\n"
msgid "Warning, no Windows 2000 printer drivers are installed!"
msgstr "Advarsel - der er ikke installeret nogen Windows 2000-printerarkiver!"
msgid "Yes"
diff --git a/locale/cups_de.po b/locale/cups_de.po
index 21187c761..1827b0b0a 100644
--- a/locale/cups_de.po
+++ b/locale/cups_de.po
@@ -211,7 +211,7 @@ msgstr " **FAIL** LanguageEncoding %s falsch!\n"
msgid " **FAIL** Bad LanguageVersion %s - must be English!\n"
msgstr " **FAIL** LanguageVersion %s falsch - muss Englisch sein!\n"
msgid " **FAIL** Default option code cannot be interpreted: %s\n"
-msgstr " **FAIL** Der Standardcode für Optionen kann nicht interpretiert werden!\n"
+msgstr " **FAIL** Der Standardcode für Optionen kann nicht interpretiert werden: %s\n"
msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
msgstr " **FAIL** Standardübersetzung für Option %s Auswahl %s enthält 8-bit Zeichen!\n"
msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
@@ -615,27 +615,27 @@ msgstr "ERROR: Aufspalten von „pictwpstops“ nicht möglich: %s\n"
msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
msgstr "ERROR: Abfragen der PPD-Datei für den Drucker „%s“ nicht möglich - %s.\n"
msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "ERROR: Abfragen der Attribute (%s) für den Auftrag %d nicht möglich!\n"
+msgstr "ERROR: Abfragen der Attribute (%2$s) für den Auftrag %1$d nicht möglich!\n"
msgid "ERROR: Unable to get printer status (%s)!\n"
msgstr "ERROR: Abfragen des Druckerstatus (%s) nicht möglich!\n"
msgid "ERROR: Unable to locate printer '%s'!\n"
msgstr "ERROR: Der Drucker „%s“ wurde nicht gefunden!\n"
msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "ERROR: „s%“ konnte nicht geöffnet werden - %s\n"
+msgstr "ERROR: „%s“ konnte nicht geöffnet werden - %s\n"
msgid "ERROR: Unable to open %s: %s\n"
-msgstr "ERROR: s% konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: %s konnte nicht geöffnet werden: %s\n"
msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "ERROR: Die Gerätdatei „s%“ konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: Die Gerätdatei „%s“ konnte nicht geöffnet werden: %s\n"
msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "ERROR: Die Datei „s%“ konnte nicht geöffnet werden - %s\n"
+msgstr "ERROR: Die Datei „%s“ konnte nicht geöffnet werden - %s\n"
msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "ERROR: Die Datei „s%“ konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: Die Datei „%s“ konnte nicht geöffnet werden: %s\n"
msgid "ERROR: Unable to open image file for printing!\n"
msgstr "ERROR: Öffnen der Bilddatei für den Druck nicht möglich!\n"
msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "ERROR: Die zu druckende Datei „s%“ konnte nicht geöffnet werden: %s\n"
+msgstr "ERROR: Die zu druckende Datei „%s“ konnte nicht geöffnet werden: %s\n"
msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "ERROR: Die zu druckende Datei „s%“ konnte nicht geöffnet werden - %s\n"
+msgstr "ERROR: Die zu druckende Datei „%s“ konnte nicht geöffnet werden - %s\n"
msgid "ERROR: Unable to open print file %s: %s\n"
msgstr "ERROR: Die zu druckende Datei %s konnte nicht geöffnet werden: %s\n"
msgid "ERROR: Unable to open temporary compressed print file: %s\n"
@@ -649,7 +649,7 @@ msgstr "ERROR: Senden der Druckdaten (%d) nicht möglich!\n"
msgid "ERROR: Unable to wait for pictwpstops: %s\n"
msgstr "ERROR: Warten auf pictwpstops nicht möglich: %s\n"
msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "ERROR: Schreiben von %d Byte auf „s%“ nicht möglich: %s\n"
+msgstr "ERROR: Schreiben von %d Byte auf „%s“ nicht möglich: %s\n"
msgid "ERROR: Unable to write print data: %s\n"
msgstr "ERROR: Schreiben der Printdaten nicht möglich: %s\n"
msgid "ERROR: Unable to write raster data to driver!\n"
@@ -1201,7 +1201,7 @@ msgstr "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]
msgid "Usage: snmp [host-or-ip-address]\n"
msgstr "Usage: snmp [host-or-ip-address]\n"
msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "WARNUNG: Boolesche Zahl hinter der Option „%s“ erwartet\n"
+msgstr "WARNING: Boolesche Zahl hinter der Option „%s“ erwartet\n"
msgid "WARNING: Couldn't create read channel\n"
msgstr "WARNING: Der Lesekanal konnte nicht erstellt werden.\n"
msgid "WARNING: Couldn't create side channel\n"
@@ -1221,11 +1221,11 @@ msgstr "WARNING: SCSI-Zeitüberschreitung (%d); erneut versuchen …\n"
msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
msgstr "WARNING: Dieses Dokument entspricht nicht den Dokumentstruktur-Konventionen von Adobe und wird möglicherweise nicht korrekt gedruckt!\n"
msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "WARNUNG: Auswahl „%s“ für Option unbekannt!\n"
+msgstr "WARNING: Auswahl „%s“ für Option %s!\n"
msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "WARNUNG: Option „%s“ unbekannt!\n"
+msgstr "WARNING: Option „%s“ unbekannt!\n"
msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "WARNUNG: Baudrate „%s“ wird nicht unterstützt!\n"
+msgstr "WARNING: Baudrate „%s“ wird nicht unterstützt!\n"
msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
msgstr "WARNING: Wiederherstellbar: Der Netzwerk-Host „%s“ ist beschäftigt, erneuter Versuch in %d Sekunden …\n"
msgid "Warning, no Windows 2000 printer drivers are installed!"
diff --git a/locale/cups_es.po b/locale/cups_es.po
index b6765fe58..9a5d0c147 100644
--- a/locale/cups_es.po
+++ b/locale/cups_es.po
@@ -119,7 +119,7 @@ msgstr " PASA Product\n"
msgid " PASS ShortNickName\n"
msgstr " PASA ShortNickName\n"
msgid " WARN \"%s %s\" conflicts with \"%s %s\"\n (constraint=\"%s %s %s %s\")\n"
-msgstr " ADVERTENCIA “%s %s” está en conflicto con “%s %s”\n (restricción=“%s %s ”)\n"
+msgstr " ADVERTENCIA “%s %s” está en conflicto con “%s %s”\n (restricción=“%s %s %s %s ”)\n"
msgid " WARN %s has no corresponding options!\n"
msgstr " ADVERTENCIA %s tiene opciones que no corresponden.\n"
msgid " WARN %s shares a common prefix with %s\n REF: Page 15, section 3.2.\n"
@@ -673,7 +673,7 @@ msgstr "ERROR: Valor de brillo no admitido %s; se está usando brillo=100.\n"
msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
msgstr "ERROR: Valor de gamma no admitido %s; se está usando gamma=1000.\n"
msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: Valor de páginas por hoja no admitido %s; se está usando páginas por hoja=1.\n"
+msgstr "ERROR: Valor de páginas por hoja no admitido %d; se está usando páginas por hoja=1.\n"
msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
msgstr "ERROR: Valor de disposiciones por hoja no admitido %s; se está usando disposiciones por hoja=lrtb.\n"
msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
diff --git a/locale/cups_et.po b/locale/cups_et.po
index 76e9fb329..e247afff3 100644
--- a/locale/cups_et.po
+++ b/locale/cups_et.po
@@ -337,50 +337,40 @@ msgstr ""
" HOIATUS ShortNickName on PPD 4.3 spetsifikatsiooni järgi nõutav.\n"
" Viide: lk 64-65, sektsioon 5.3.\n"
-#, fuzzy, c-format
msgid " %s %s %s does not exist!\n"
-msgstr " **EBAÕNN** %s %s ei ole olemas!\n"
+msgstr " %s %s %s ei ole olemas!\n"
-#, fuzzy, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s!\n"
+msgstr " %s Puudub \"%s\" tõlkestring võtmele %s!\n"
-#, fuzzy, c-format
msgid ""
" %s Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
-msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
+msgstr " %s Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
-#, fuzzy, c-format
msgid " %s Bad cupsFilter value \"%s\"!\n"
-msgstr " **EBAÕNN** Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr " %s Vigane cupsFilter väärtus \"%s\"!\n"
-#, fuzzy, c-format
msgid " %s Bad cupsPreFilter value \"%s\"!\n"
-msgstr " **EBAÕNN** Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr " %s Vigane cupsFilter väärtus \"%s\"!\n"
-#, fuzzy, c-format
msgid " %s Bad language \"%s\"!\n"
-msgstr " **EBAÕNN** Vigane keel \"%s\"!\n"
+msgstr " %s Vigane keel \"%s\"!\n"
-#, fuzzy, c-format
msgid " %s Missing \"%s\" translation string for option %s!\n"
-msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s!\n"
+msgstr " %s Puudub \"%s\" tõlkestring võtmele %s!\n"
-#, fuzzy, c-format
msgid " %s Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
+msgstr " %s Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
#, c-format
msgid " %s Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
msgstr ""
-#, fuzzy, c-format
msgid " %s Missing cupsFilter file \"%s\"\n"
-msgstr " **EBAÕNN** Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr " %s Vigane cupsFilter väärtus \"%s\"!\n"
-#, fuzzy, c-format
msgid " %s Missing cupsPreFilter file \"%s\"\n"
-msgstr " **EBAÕNN** Vigane cupsFilter väärtus \"%s\"!\n"
+msgstr " %s Vigane cupsFilter väärtus \"%s\"!\n"
#, c-format
msgid " %s Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
@@ -390,15 +380,13 @@ msgstr ""
msgid " %s No base translation \"%s\" is included in file!\n"
msgstr ""
-#, fuzzy, c-format
msgid ""
" **FAIL** %s must be 1284DeviceID!\n"
" REF: Page 72, section 5.5\n"
msgstr ""
-" **EBAÕNN** 1284DeviceId peab olema 1284DeviceID!\n"
+" **EBAÕNN** %s peab olema 1284DeviceID!\n"
" Viide: lk 72, sektsioon 5.5\n"
-#, fuzzy, c-format
msgid ""
" **FAIL** BAD Default%s %s\n"
" REF: Page 40, section 4.5.\n"
@@ -436,12 +424,11 @@ msgstr ""
" **EBAÕNN** VIGANE Manufacturer (peab olema \"HP\")\n"
" Viide: lk 211, tabel D.1.\n"
-#, fuzzy
msgid ""
" **FAIL** BAD Manufacturer (should be \"Oki\")\n"
" REF: Page 211, table D.1.\n"
msgstr ""
-" **EBAÕNN** VIGANE Manufacturer (peab olema \"HP\")\n"
+" **EBAÕNN** VIGANE Manufacturer (peab olema \"Oki\")\n"
" Viide: lk 211, tabel D.1.\n"
#, c-format
@@ -489,19 +476,14 @@ msgstr ""
" **EBAÕNN** Vigane %s valik %s!\n"
" Viide: lk 84, sektsioon 5.9\n"
-#, fuzzy, c-format
msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1!\n"
-msgstr " **EBAÕNN** Vigane keel \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " **FAIL** Bad LanguageVersion %s - must be English!\n"
-msgstr " **EBAÕNN** Vigane keel \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s\n"
msgstr ""
-" **EBAÕNN** Vaikimisi tõlkestring võtmele %s sisaldab 8-bitiseid "
-"märke!\n"
#, c-format
msgid ""
@@ -669,9 +651,8 @@ msgstr ""
" **EBAÕNN** VAJALIK ShortNickName\n"
" Viide: lk 64-65, sektsioon 5.3.\n"
-#, fuzzy, c-format
msgid " %d ERRORS FOUND\n"
-msgstr " %d VIGA%s LEITUD\n"
+msgstr ""
#, c-format
msgid ""
@@ -1190,21 +1171,17 @@ msgstr "Vigane job-state väärtus!"
msgid "Bad job-uri attribute \"%s\"!"
msgstr "Vigane job-uri atribuut \"%s\"!"
-#, fuzzy, c-format
msgid "Bad notify-pull-method \"%s\"!"
-msgstr "Vigane port-monitor \"%s\"!"
+msgstr ""
-#, fuzzy, c-format
msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr "Vigane port-monitor \"%s\"!"
+msgstr ""
-#, fuzzy, c-format
msgid "Bad number-up value %d."
-msgstr "Vigane koopiate väärtus %d."
+msgstr ""
-#, fuzzy, c-format
msgid "Bad option + choice on line %d!"
-msgstr "Vigane võti + valik real %d!\n"
+msgstr ""
#, c-format
msgid "Bad page-ranges values %d-%d."
@@ -1222,9 +1199,8 @@ msgstr "Vigane printer-state väärtus %d!"
msgid "Bad request version number %d.%d!"
msgstr "Vigane soovi versiooninumber %d.%d!"
-#, fuzzy
msgid "Bad subscription ID!"
-msgstr "Tellimusi ei leitud."
+msgstr ""
msgid "Banners"
msgstr "Bännerid"
@@ -1294,17 +1270,14 @@ msgstr ""
msgid "Door open."
msgstr ""
-#, fuzzy, c-format
msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
+msgstr ""
-#, fuzzy, c-format
msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: %ld: (canceled:%ld)\n"
-msgstr "lprm: tööde katkestamine ei ole võimalik!\n"
+msgstr ""
#, c-format
msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
@@ -1322,9 +1295,8 @@ msgstr ""
msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "Vigane device-uri \"%s\"!"
+msgstr ""
#, c-format
msgid "ERROR: Bad charset file %s\n"
@@ -1360,9 +1332,8 @@ msgstr ""
msgid "ERROR: Duplicate %%Pages: comment seen!\n"
msgstr ""
-#, fuzzy
msgid "ERROR: Empty print file!\n"
-msgstr "PPD-faili kopeerimine ebaõnnestus!"
+msgstr ""
msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
msgstr ""
@@ -1406,9 +1377,8 @@ msgstr ""
msgid "ERROR: Print file was not accepted (%s)!\n"
msgstr ""
-#, fuzzy
msgid "ERROR: Printer not responding!\n"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
#, c-format
msgid "ERROR: Remote host did not accept control file (%d)\n"
@@ -1418,89 +1388,68 @@ msgstr ""
msgid "ERROR: Remote host did not accept data file (%d)\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr "lprm: tööde katkestamine ei ole võimalik!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr "%s: ei õnnestu saada ühendust serveriga: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr "Protsessi harutamine ebaõnnestus!"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr "cupsaddsmb: puudub PPD-fail printerile \"%s\" - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "Printeri atribuutide hankimine ebaõnnestus!"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr "Printeri oleku hankimine ebaõnnestus:"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr "Printeri muutmine ebaõnnestus:"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "lp: ei õnnestu ligipääs \"%s\" - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open %s: %s\n"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
-#, fuzzy
msgid "ERROR: Unable to open image file for printing!\n"
-msgstr "lpoptions: ei õnnestu avada PPD-faili %s jaoks!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "lpadmin: ei õnnestu avada PPD-faili \"%s\" - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr "lp: ei õnnestu trükkida faili: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+msgstr ""
#, c-format
msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
@@ -1510,33 +1459,28 @@ msgstr ""
msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to send print data (%d)\n"
-msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
+msgstr ""
#, c-format
msgid "ERROR: Unable to wait for pictwpstops: %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to write print data: %s\n"
-msgstr "lp: ei õnnestu trükkida faili: %s\n"
+msgstr ""
-#, fuzzy
msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr "Printeri atribuutide hankimine ebaõnnestus!"
+msgstr ""
#, c-format
msgid "ERROR: Unable to write uncompressed document data: %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
#, c-format
msgid "ERROR: Unknown file order \"%s\"\n"
@@ -1546,17 +1490,14 @@ msgstr ""
msgid "ERROR: Unknown format character \"%c\"\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "cupsd: tundmatu võti \"%c\" - loobutakse!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
#, c-format
msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
@@ -1587,9 +1528,8 @@ msgstr ""
msgid "ERROR: pictwpstops exited on signal %d!\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr "cupsaddsmb ebaõnnestus olekuga %d"
+msgstr ""
msgid ""
"ERROR: recoverable: Unable to connect to printer; will retry in 30 "
@@ -1603,9 +1543,8 @@ msgstr ""
msgid "Edit Configuration File"
msgstr "Seadistustefaili muutmine"
-#, fuzzy
msgid "Empty PPD file!"
-msgstr "PPD-faili kopeerimine ebaõnnestus!"
+msgstr ""
msgid "Ending Banner"
msgstr "Lõpetav bänner"
@@ -1619,14 +1558,11 @@ msgstr "Parool teist korda:"
msgid "Enter password:"
msgstr "Parool:"
-#, fuzzy
msgid ""
"Enter your username and password or the root username and password to access "
"this page. If you are using Kerberos authentication, make sure you have a "
"valid Kerberos ticket."
msgstr ""
-"Selle lehekülje avamiseks andke enda või administraatori (root) kasutajanimi "
-"ja parool."
msgid "Error Policy"
msgstr "Veareegel"
@@ -1671,9 +1607,8 @@ msgstr "Abi"
msgid "INFO: Attempting to connect to host %s for printer %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "lpstat: ei õnnestu saada ühendust serveriga %s pordis %d: %s\n"
+msgstr ""
msgid "INFO: Canceling print job...\n"
msgstr ""
@@ -1826,9 +1761,8 @@ msgstr "Tööd nr %d ei ole olemas!"
msgid "Job #%d is already aborted - can't cancel."
msgstr "Tööst nr %d on juba loobutud - enam ei saa katkestada."
-#, fuzzy, c-format
msgid "Job #%d is already canceled - can't cancel."
-msgstr "Töö nr %d on juba katkestatud - enam ei saa katkestada."
+msgstr ""
#, c-format
msgid "Job #%d is already completed - can't cancel."
@@ -1858,20 +1792,17 @@ msgstr "Tööd nr %s ei ole olemas!"
msgid "Job %d not found!"
msgstr "Tööd %d ei leitud!"
-#, fuzzy
msgid "Job Completed"
-msgstr "lõpetatud"
+msgstr ""
msgid "Job Created"
msgstr ""
-#, fuzzy
msgid "Job Options Changed"
-msgstr "Töötoiming ebaõnnestus:"
+msgstr ""
-#, fuzzy
msgid "Job Stopped"
-msgstr "peatatud"
+msgstr ""
msgid "Job is completed and cannot be changed."
msgstr "Töö on lõpetatud ja seda ei saa muuta."
@@ -1907,9 +1838,8 @@ msgstr "Trükimaterjali allikas"
msgid "Media Type"
msgstr "Trükimaterjali tüüp"
-#, fuzzy
msgid "Media jam!"
-msgstr "Trükimaterjali tüüp"
+msgstr ""
msgid "Media tray almost empty."
msgstr ""
@@ -1932,9 +1862,8 @@ msgstr "Puudub PPD-Adobe-4.x päis"
msgid "Missing asterisk in column 1"
msgstr "Puudub tärn veerus 1"
-#, fuzzy, c-format
msgid "Missing double quote on line %d!"
-msgstr "Puuduvad topeltjutumärgid real %d!\n"
+msgstr ""
msgid "Missing form variable!"
msgstr "Puudub vormi muutuja!"
@@ -1948,9 +1877,8 @@ msgstr "Puudub requesting-user-name atribuut!"
msgid "Missing required attributes!"
msgstr "Nõutud atribuudid puuduvad!"
-#, fuzzy, c-format
msgid "Missing value on line %d!"
-msgstr "Puudub väärtus real %d!\n"
+msgstr ""
msgid "Missing value string"
msgstr "Puudub väärtusestring"
@@ -2023,9 +1951,8 @@ msgstr "Tellimusi ei leitud."
msgid "None"
msgstr "Puudub"
-#, fuzzy
msgid "Not allowed to print."
-msgstr "Vaikimisi printer puudub"
+msgstr ""
msgid "OK"
msgstr "OK"
@@ -2102,28 +2029,23 @@ msgstr "Trükitöö:"
msgid "Print Test Page"
msgstr "Testlehekülje trükkimine"
-#, fuzzy
msgid "Printer Added"
-msgstr "Printer"
+msgstr ""
-#, fuzzy
msgid "Printer Deleted"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
msgid "Printer Maintenance"
msgstr "Printeri hooldus"
-#, fuzzy
msgid "Printer Modified"
-msgstr "Printeri hooldus"
+msgstr ""
-#, fuzzy
msgid "Printer Stopped"
-msgstr "Printer ei ole ühiskasutuses!"
+msgstr ""
-#, fuzzy
msgid "Printer off-line."
-msgstr "Printeri hooldus"
+msgstr ""
msgid "Printer:"
msgstr "Printer:"
@@ -2173,9 +2095,8 @@ msgstr "Lubatud kasutajate määramine"
msgid "Set As Default"
msgstr "Määra vaikeväärtuseks"
-#, fuzzy
msgid "Set Class Options"
-msgstr "Printeri valikute määramine"
+msgstr ""
msgid "Set Printer Options"
msgstr "Printeri valikute määramine"
@@ -2250,13 +2171,10 @@ msgid ""
msgstr ""
"printer-uri peab olema kujul \"ipp://MASINANIMI/printers/PRINTERINIMI\"."
-#, fuzzy
msgid ""
"The subscription name may not contain spaces, slashes (/), question marks "
"(?), or the pound sign (#)."
msgstr ""
-"Klassi nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei tohi "
-"sisalduda tühikuid, kaldkriipse (/) ega trelle (#)."
msgid "Toner low."
msgstr ""
@@ -2267,9 +2185,8 @@ msgstr "Liiga palju aktiivseid täid."
msgid "Unable to access cupsd.conf file:"
msgstr "Ligipääs failile cupsd.conf ebaõnnestus:"
-#, fuzzy
msgid "Unable to add RSS subscription:"
-msgstr "Printeri lisamine ebaõnnestus:"
+msgstr ""
msgid "Unable to add class:"
msgstr "Klassi lisamine ebaõnnestus:"
@@ -2284,9 +2201,8 @@ msgstr "Printeri lisamine ebaõnnestus:"
msgid "Unable to allocate memory for file types!"
msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
-#, fuzzy
msgid "Unable to cancel RSS subscription:"
-msgstr "Printeri muutmine ebaõnnestus:"
+msgstr ""
msgid "Unable to change printer-is-shared attribute:"
msgstr "Atribuudi printer-is-shared muutmine ebaõnnestus:"
@@ -2393,16 +2309,14 @@ msgstr "Faili cupsd.conf avaline ebaõnnestus:"
msgid "Unable to print test page:"
msgstr "Testlehekülje trükkimine ebaõnnestus:"
-#, fuzzy, c-format
msgid "Unable to run \"%s\": %s\n"
-msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+msgstr ""
msgid "Unable to send maintenance job:"
msgstr "Hooldustöö saatmine ebaõnnestus:"
-#, fuzzy, c-format
msgid "Unable to set Windows printer driver (%d)!"
-msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
+msgstr ""
msgid "Unable to set options:"
msgstr "Valikute määramine ebaõnnestus:"
@@ -2413,9 +2327,8 @@ msgstr "Faili cupsd.conf üleslaadimine ebaõnnestus:"
msgid "Unknown"
msgstr "Teadmata"
-#, fuzzy, c-format
msgid "Unknown printer error (%s)!"
-msgstr "Tundmatu printer-error-policy \"%s\"."
+msgstr ""
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
@@ -2632,9 +2545,8 @@ msgstr ""
msgid "Usage: snmp [host-or-ip-address]\n"
msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "lp: võtme -f järel oodati vormi!\n"
+msgstr ""
msgid "WARNING: Couldn't create read channel\n"
msgstr ""
@@ -2676,17 +2588,14 @@ msgid ""
"Conventions and may not print correctly!\n"
msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "%s: tundmatu võti '%c'!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "Toetamata vorming '%s'!"
+msgstr ""
#, c-format
msgid ""
@@ -2730,13 +2639,11 @@ msgstr "cups-driverd käivitamine ebaõnnestus."
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
msgstr "cupsaddsmb: puudub PPD-fail printerile \"%s\" - %s\n"
-#, fuzzy, c-format
msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cancel: tundmatu võti '%c'!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr "cancel: tundmatu võti '%c'!\n"
+msgstr ""
msgid "cupsd: Expected config filename after \"-c\" option!\n"
msgstr "cupsd: võtme \"-c\" järel oodati seadistustefaili nime!\n"
@@ -2976,9 +2883,8 @@ msgstr "lpoptions: printerit polegi!?!\n"
msgid "lpoptions: Unable to add printer or instance: %s\n"
msgstr "lpoptions: ei õnnestu lisada printerit või isendit: %s\n"
-#, fuzzy, c-format
msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: ei õnnestu avada PPD-faili %s jaoks!\n"
+msgstr ""
#, c-format
msgid "lpoptions: Unable to open PPD file for %s!\n"
@@ -3133,621 +3039,3 @@ msgstr "teadmata"
msgid "untitled"
msgstr "nimeta"
-
-#~ msgid " **FAIL** %s %s does not exist!\n"
-#~ msgstr " **EBAÕNN** %s %s ei ole olemas!\n"
-
-#~ msgid ""
-#~ " **FAIL** 1284DeviceId must be 1284DeviceID!\n"
-#~ " REF: Page 72, section 5.5\n"
-#~ msgstr ""
-#~ " **EBAÕNN** 1284DeviceId peab olema 1284DeviceID!\n"
-#~ " Viide: lk 72, sektsioon 5.5\n"
-
-#, fuzzy
-#~ msgid " **FAIL** Bad UTF-8 \"%s\" translation string for option %s!\n"
-#~ msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s!\n"
-
-#, fuzzy
-#~ msgid ""
-#~ " **FAIL** Bad UTF-8 \"%s\" translation string for option %s, choice "
-#~ "%s!\n"
-#~ msgstr ""
-#~ " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
-
-#~ msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
-#~ msgstr " **EBAÕNN** Vigane cupsFilter väärtus \"%s\"!\n"
-
-#~ msgid " **FAIL** Bad language \"%s\"!\n"
-#~ msgstr " **EBAÕNN** Vigane keel \"%s\"!\n"
-
-#~ msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
-#~ msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s!\n"
-
-#~ msgid ""
-#~ " **FAIL** Missing \"%s\" translation string for option %s, choice %"
-#~ "s!\n"
-#~ msgstr ""
-#~ " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
-
-#~ msgid " %d ERROR%s FOUND\n"
-#~ msgstr " %d VIGA%s LEITUD\n"
-
-#~ msgid "%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s võtab soove vastu alates 01. jaan 00:00\n"
-
-#~ msgid ""
-#~ "%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s ei võta soove vastu alates 01. jaan 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s/%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s/%s võtab soove vastu alates 01. jaan 00:00\n"
-
-#~ msgid ""
-#~ "%s/%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s/%s ei võta soove vastu alates 01. jaan 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s: Expected reason text after -r!\n"
-#~ msgstr "%s: oodati teksti pärast -r!\n"
-
-#~ msgid "%s: Expected server name after -h!\n"
-#~ msgstr "%s: oodati serveri nime pärast -h!\n"
-
-#~ msgid "Auto"
-#~ msgstr "Automaatne"
-
-#~ msgid "Bad option + choice on line %d!\n"
-#~ msgstr "Vigane võti + valik real %d!\n"
-
-#~ msgid "Class"
-#~ msgstr "Klass"
-
-#~ msgid ""
-#~ "Device: uri = %s\n"
-#~ " class = %s\n"
-#~ " info = %s\n"
-#~ " make-and-model = %s\n"
-#~ msgstr ""
-#~ "Seade: uri = %s\n"
-#~ " klass = %s\n"
-#~ " info = %s\n"
-#~ " valmistaja-ja-mudel = %s\n"
-
-#, fuzzy
-#~ msgid "ERROR: %ld: Unable to send print file to printer (canceled:%ld)\n"
-#~ msgstr "lpoptions: ei õnnestu lisada printerit või isendit: %s\n"
-
-#~ msgid ""
-#~ "Enter your username and password or the root username and password to "
-#~ "access this page."
-#~ msgstr ""
-#~ "Selle lehekülje avamiseks andke enda või administraatori (root) "
-#~ "kasutajanimi ja parool."
-
-#~ msgid "Extra"
-#~ msgstr "Ekstra"
-
-#~ msgid "Job #%d doesn't exist!"
-#~ msgstr "Tööd nr %d ei ole olemas!"
-
-#~ msgid "Job #%d is already %s - can't cancel."
-#~ msgstr "Töö nr %d on juba %s - ei saa katkestada."
-
-#~ msgid "Job #%d is already cancelled - can't cancel."
-#~ msgstr "Töö nr %d on juba katkestatud - enam ei saa katkestada."
-
-#~ msgid "Missing double quote on line %d!\n"
-#~ msgstr "Puuduvad topeltjutumärgid real %d!\n"
-
-#~ msgid "Missing value on line %d!\n"
-#~ msgstr "Puudub väärtus real %d!\n"
-
-#~ msgid ""
-#~ "Model: name = %s\n"
-#~ " natural_language = %s\n"
-#~ " make-and-model = %s\n"
-#~ msgstr ""
-#~ "Mudel: nimi = %s\n"
-#~ " loomulik_keel = %s\n"
-#~ " valmistaja-ja-mudel = %s\n"
-
-#~ msgid "No Windows printer drivers are installed!\n"
-#~ msgstr "Ühtegi Windowsi printeridraiverit pole paigaldatud!+n"
-
-#~ msgid "No printer drivers found!"
-#~ msgstr "Printeridraivereid ei leitud!"
-
-#~ msgid "Not authorized to hold job #%d owned by \"%s\"!"
-#~ msgstr "Pole õigust hoida tööd %d, mille omanik on \"%s\"!"
-
-#~ msgid "Printer"
-#~ msgstr "Printer"
-
-#~ msgid "Printer not shared!"
-#~ msgstr "Printer ei ole ühiskasutuses!"
-
-#~ msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
-#~ msgstr "Käivitatakse käsk: %s %s -N -U '%s%%%s' -c '%s'\n"
-
-#~ msgid "The printer-uri \"%s\" is not valid."
-#~ msgstr "printer-uri \"%s\" ei ole korrektne."
-
-#~ msgid "Too many jobs - %d jobs, max jobs is %d."
-#~ msgstr "Liiga palju töid - %d tööd, maksimaalselt võib olla %d."
-
-#~ msgid "Unable to connect to server!"
-#~ msgstr "Ühendumine serveriga ebaõnnestus!"
-
-#~ msgid "Unable to convert PPD file!"
-#~ msgstr "PPD-faili teisendamine ebaõnnestus!"
-
-#~ msgid "Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu kopeerida CUPS-i printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu kopeerida Windows 2000 printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files!"
-#~ msgstr "Windows 2000 printeridraiverifailide kopeerimine ebaõnnestus!"
-
-#~ msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu kopeerida Windows 9x printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to copy Windows 9x printer driver files!"
-#~ msgstr "Windows 9x printeridraiverifailide kopeerimine ebaõnnestus!"
-
-#~ msgid "Unable to execute cupsaddsmb command!"
-#~ msgstr "Käsu cupsaddsmb täitmine ebaõnnestus!"
-
-#~ msgid "Unable to fork process!"
-#~ msgstr "Protsessi harutamine ebaõnnestus!"
-
-#~ msgid "Unable to get PPD file!"
-#~ msgstr "PPD-faili hankimine ebaõnnestus!"
-
-#~ msgid "Unable to get printer attributes!"
-#~ msgstr "Printeri atribuutide hankimine ebaõnnestus!"
-
-#~ msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu paigaldada Windows 2000 printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to install Windows 2000 printer driver files!"
-#~ msgstr "Windows 2000 printeridraiverifailide paigaldamine ebaõnnestus!"
-
-#~ msgid "Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr "Ei õnnestu paigaldada Winodws 9x printeridraiverifaile (%d)!\n"
-
-#~ msgid "Unable to install Windows 9x printer driver files!"
-#~ msgstr "Windows 9x printeridraiverifailide paigaldamine ebaõnnestus!"
-
-#~ msgid "Unable to set Windows printer driver (%d)!\n"
-#~ msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
-
-#~ msgid "Unable to set Windows printer driver!"
-#~ msgstr "Windowsi printeridraiveri määramine ebaõnnestus!"
-
-#~ msgid ""
-#~ "Usage: cupsaddsmb [options] printer1 ... printerN\n"
-#~ " cupsaddsmb [options] -a\n"
-#~ "\n"
-#~ "Options:\n"
-#~ " -H samba-server Use the named SAMBA server\n"
-#~ " -U samba-user Authenticate using the named SAMBA user\n"
-#~ " -a Export all printers\n"
-#~ " -h cups-server Use the named CUPS server\n"
-#~ " -v Be verbose (show commands)\n"
-#~ msgstr ""
-#~ "Kasutamine: cupsaddsmb [võtmed] printer1 ... printerN\n"
-#~ " cupsaddsmb [võtmed] -a\n"
-#~ "\n"
-#~ "Võtmed:\n"
-#~ " -H samba-server määratud SAMBA-serveri kasutamine\n"
-#~ " -U samba-kasutaja määratud SAMBA kasutajaga autentimine\n"
-#~ " -a Kõigi printerite eksport\n"
-#~ " -h cups-server määratud CUPS-serveri kasutamine\n"
-#~ " -v Häälekus (käskude näitamine)\n"
-
-#~ msgid ""
-#~ "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd"
-#~ "[.gz]]\n"
-#~ " program | cupstestppd [-q] [-r] [-v[v]] -\n"
-#~ msgstr ""
-#~ "Kasutamine: cupstestppd [-q] [-r] [-v[v]] failinimi1.ppd[.gz] [... "
-#~ "failinimiN.ppd[.gz]]\n"
-#~ " program | cupstestppd [-q] [-r] [-v[v]] -\n"
-
-#~ msgid "Usage: lpmove job dest\n"
-#~ msgstr "Kasutamine: lpmove töö sihtkoht\n"
-
-#~ msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
-#~ msgstr "Kasutamine: lpq [-P sihtkoht] [-l] [+intervall]\n"
-
-#~ msgid "Variable"
-#~ msgstr "Muutuv"
-
-#~ msgid "Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr "Hoiatus - ühtegi Windows 2000 printeridraiverit pole paigaldatud!\n"
-
-#~ msgid "You are not authorized to alter job id %d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust muuta töö ID-d %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust autentida tööd nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to delete job #%d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust kustutada tööd nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to move job #%d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust liigutada tööd nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to release job id %d owned by \"%s\"!"
-#~ msgstr "Teil pole õigust vabastada tööd ID-ga %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to restart job id %d owned by \"%s\"!"
-#~ msgstr ""
-#~ "Teil pole õigust taaskäivitada tööd ID-ga %d, mille omanik on \"%s\"!"
-
-#~ msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
-#~ msgstr ""
-#~ "Teil pole õigust saata dokumenti tööle nr %d, mille omanik on \"%s\"!"
-
-#~ msgid "You must use a https: URL to access this page."
-#~ msgstr "Selle lehekülje avamiseks tuleb kasutada https: URL-i."
-
-#~ msgid "add_class: Unknown printer-error-policy \"%s\"."
-#~ msgstr "add_class: tundmatu printer-error-policy \"%s\"."
-
-#~ msgid "add_class: Unknown printer-op-policy \"%s\"."
-#~ msgstr "add_class: tundmatu printer-op-policy \"%s\"."
-
-#~ msgid "cancel: %s failed: %s\n"
-#~ msgstr "cancel: %s ebaõnnestus: %s\n"
-
-#~ msgid "cancel: Error - expected hostname after '-h' option!\n"
-#~ msgstr "cancel: viga - oodati masinanime pärast võtit '.h'!\n"
-
-#~ msgid "cancel: Error - expected username after '-u' option!\n"
-#~ msgstr "cancel: viga - oodati kasutajanime pärast võtit '-u'!\n"
-
-#~ msgid "cancel: Unable to contact server!\n"
-#~ msgstr "cancel: ei õnnestu saada ühendust serveriga!\n"
-
-#~ msgid "cancel: Unknown destination \"%s\"!\n"
-#~ msgstr "cancel: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "cupsaddsmb crashed on signal %d"
-#~ msgstr "cupsaddsmb elas üle krahhi signaaliga %d"
-
-#~ msgid "cupsaddsmb failed with status %d"
-#~ msgstr "cupsaddsmb ebaõnnestus olekuga %d"
-
-#~ msgid "cupsaddsmb: Bad option + choice on line %d!\n"
-#~ msgstr "cupsaddsmb: vigane võti + valik real %d!\n"
-
-#~ msgid "cupsaddsmb: Missing double quote on line %d!\n"
-#~ msgstr "cupsaddsmb: puuduvad kahekordsed jutumärgid real %d!\n"
-
-#~ msgid "cupsaddsmb: Missing value on line %d!\n"
-#~ msgstr "cupsaddsmb: puudub väärtus real %d!\n"
-
-#~ msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
-#~ msgstr "cupsaddsmb: puudub PPD printerile \"%s\" - jäetakse vahele!\n"
-
-#~ msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
-#~ msgstr "cupsaddsmb: ühtegi Windowsi printeridraiverit pole paigaldatud!\n"
-
-#~ msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestu saada ühendust serveriga \"%s\" %s jaoks - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
-#~ msgstr "cupsaddsmb: ei õnnestunud teisendada PPD-faili %s jaoks - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud kopeerida CUPS-i printeridraiverifaile (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud kopeerida Windows 2000 printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud kopeerida Windows 9x printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud paigaldada Windows 2000 printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud paigaldada Windows 9x printeridraiverifaile (%"
-#~ "d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
-#~ msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
-
-#~ msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: ei õnnestunud määrata Windowsi printeridraiverit (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: hoiatus - ühtegi Windows 2000 printeridraiverit pole "
-#~ "paigaldatud!\n"
-
-#~ msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
-#~ msgstr "cupsaddsmb: get-printer-attributes ebaõnnestus \"%s\" jaoks: %s\n"
-
-#, fuzzy
-#~ msgid "cupsfilter: Unknown destination MIME type %s/%s!\n"
-#~ msgstr "lpq: tundmatu sihtkoht \"%s/%s\"!\n"
-
-#~ msgid "lp: Error - bad job ID!\n"
-#~ msgstr "lp: viga - vigane töö ID!\n"
-
-#~ msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
-#~ msgstr "lp: viga - faile ei saa trükkida ja töid muuta ühel ajal!\n"
-
-#~ msgid ""
-#~ "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-#~ msgstr ""
-#~ "lp: viga - standardsisendist ei saa trükkida, kui on antud failid või töö "
-#~ "ID!\n"
-
-#~ msgid "lp: Expected character set after -S option!\n"
-#~ msgstr "lp: võtme -S järel oodati märgistikku!\n"
-
-#~ msgid "lp: Expected content type after -T option!\n"
-#~ msgstr "lp: võtme -T järel oodati sisu tüüpi!\n"
-
-#~ msgid "lp: Expected copies after -n option!\n"
-#~ msgstr "lp: võtme -n järel oodati koopiaid!\n"
-
-#~ msgid "lp: Expected destination after -d option!\n"
-#~ msgstr "lp: võtme -d järel oodati sihtkohta!\n"
-
-#~ msgid "lp: Expected form after -f option!\n"
-#~ msgstr "lp: võtme -f järel oodati vormi!\n"
-
-#~ msgid "lp: Expected hold name after -H option!\n"
-#~ msgstr "lp: vätme -H järel oodati hoitava nime!\n"
-
-#~ msgid "lp: Expected hostname after -h option!\n"
-#~ msgstr "lp: võtme -h järel oodati masinanime!\n"
-
-#~ msgid "lp: Expected job ID after -i option!\n"
-#~ msgstr "lp: võtme -i järel oodati töö ID-d!\n"
-
-#~ msgid "lp: Expected mode list after -y option!\n"
-#~ msgstr "lp: võtme -y järel oodati režiimiloendit!\n"
-
-#~ msgid "lp: Expected option string after -o option!\n"
-#~ msgstr "lp. võtme -o järel oodati võtme stringi!\n"
-
-#~ msgid "lp: Expected page list after -P option!\n"
-#~ msgstr "lp: võtme -P järel oodati leheloendit!\n"
-
-#~ msgid "lp: Expected priority after -%c option!\n"
-#~ msgstr "lp: võtme -%c järel oodati prioriteeti!\n"
-
-#~ msgid "lp: Expected title after -t option!\n"
-#~ msgstr "lp: võtme -t järel oodati tiitlit!\n"
-
-#~ msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
-#~ msgstr "lp: enne \"-H restart\" on vajalik töö ID (-i)!\n"
-
-#~ msgid "lp: Priority must be between 1 and 100.\n"
-#~ msgstr "lp: prioriteet peab olema vahemikus 1 kuni 100.\n"
-
-#~ msgid "lp: Too many files - \"%s\"\n"
-#~ msgstr "lp: liiga palju faile - \"%s\"\n"
-
-#~ msgid "lp: Unable to access \"%s\" - %s\n"
-#~ msgstr "lp: ei õnnestu ligipääs \"%s\" - %s\n"
-
-#~ msgid "lp: Unknown option '%c'!\n"
-#~ msgstr "lp: tundmatu võti '%c'!\n"
-
-#~ msgid "lp: Warning - character set option ignored!\n"
-#~ msgstr "lp: hoiatus - märgistikuvõtit ignoreeritakse!\n"
-
-#~ msgid "lp: Warning - content type option ignored!\n"
-#~ msgstr "lp: hoiatus - sisu tüübi võtit ignoreeritakse!\n"
-
-#~ msgid "lp: Warning - mode option ignored!\n"
-#~ msgstr "lp: hoiatus - režiimivõtit ignoreeritakse!\n"
-
-#~ msgid ""
-#~ "lp: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lp: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
-
-#~ msgid "lp: error - no default destination available.\n"
-#~ msgstr "lp: viga - vaikimisi sihtkoht pole saadaval.\n"
-
-#~ msgid "lp: error - scheduler not responding!\n"
-#~ msgstr "lp: viga - ajastaja ei vasta!\n"
-
-#~ msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lp: viga - ei õnnestu kirjutada ajutisse faili \"%s\" - %s\n"
-
-#~ msgid "lp: restart-job failed: %s\n"
-#~ msgstr "lp: restart-job ebaõnnestus: %s\n"
-
-#~ msgid "lp: set-job-attributes failed: %s\n"
-#~ msgstr "lp: set-job-attributes ebaõnnestus: %s\n"
-
-#~ msgid "lp: stdin is empty, so no job has been sent.\n"
-#~ msgstr "lp: standardsisend on tühi, ühtegi tööd ei saadetud.\n"
-
-#~ msgid "lp: unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lp: ei õnnestu luua ajutist faili \"%s\" - %s\n"
-
-#~ msgid "lp: unable to print file: %s\n"
-#~ msgstr "lp: ei õnnestu trükkida faili: %s\n"
-
-#~ msgid "lpadmin: %s failed: %s\n"
-#~ msgstr "lpadmin: %s ebaõnnestus: %s\n"
-
-#~ msgid "lpadmin: add-printer (set description) failed: %s\n"
-#~ msgstr "lpadmin: add-printer (kirjelduse määramine) ebaõnnestus: %s\n"
-
-#~ msgid "lpadmin: add-printer (set location) failed: %s\n"
-#~ msgstr "lpadmin: add-printer (asukoha määramine) ebaõnnestus: %s\n"
-
-#~ msgid "lpadmin: add-printer (set model) failed: %s\n"
-#~ msgstr "lpadmin: add-printer (mudeli määramine) ebaõnnestus: %s\n"
-
-#~ msgid "lpinfo: cups-get-devices failed: %s\n"
-#~ msgstr "lpinfo: cups-get-devices ebaõnnestus: %s\n"
-
-#~ msgid "lpinfo: cups-get-ppds failed: %s\n"
-#~ msgstr "lpinfo: cups-get-ppds ebaõnnestus: %s\n"
-
-#~ msgid "lpmove: move-job failed: %s\n"
-#~ msgstr "lpmove: move-job ebaõnnestus: %s\n"
-
-#~ msgid "lpoptions: Destination %s has no PPD file!\n"
-#~ msgstr "lpoptions: sihtkohal %s pole PPD-faili!\n"
-
-#~ msgid "lpq: Unable to contact server!\n"
-#~ msgstr "lpq: serveriga ei õnnestu ühendust luua!\n"
-
-#~ msgid "lpq: Unknown destination \"%s\"!\n"
-#~ msgstr "lpq: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "lpq: error - no default destination available.\n"
-#~ msgstr "lpq: viga - vaikimisi sihtkoht pole saadaval.\n"
-
-#~ msgid "lpq: get-jobs failed: %s\n"
-#~ msgstr "lpq: get-jobs ebaõnnestus: %s\n"
-
-#~ msgid "lpq: get-printer-attributes failed: %s\n"
-#~ msgstr "lpq: get-printer-attributes ebaõnnestus: %s\n"
-
-#~ msgid ""
-#~ "lpr: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lpr: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
-
-#~ msgid "lpr: error - expected copy count after -# option!\n"
-#~ msgstr "lpr: viga - oodati koopiate arvu pärast võtit -#!\n"
-
-#~ msgid "lpr: error - expected destination after -P option!\n"
-#~ msgstr "lpr: viga - oodati sihtkohta pärast võtit -P!\n"
-
-#~ msgid "lpr: error - expected name after -%c option!\n"
-#~ msgstr "lpr: viga - oodati nime pärast võtit -%c!\n"
-
-#~ msgid "lpr: error - expected option=value after -o option!\n"
-#~ msgstr "lpr: viga - oodati võti=väärtus pärast võtit -o!\n"
-
-#~ msgid "lpr: error - expected username after -U option!\n"
-#~ msgstr "lpr: viga - oodati kasutajanime pärast võtit -U!\n"
-
-#~ msgid "lpr: error - expected value after -%c option!\n"
-#~ msgstr "lpr: viga - oodati väärust pärast võtit -%c!\n"
-
-#~ msgid "lpr: error - no default destination available.\n"
-#~ msgstr "lpr: viga - vaikimisi sihtkoht pole saadaval.\n"
-
-#~ msgid "lpr: error - scheduler not responding!\n"
-#~ msgstr "lpr: viga - ajastaja ei vasta!\n"
-
-#~ msgid "lpr: error - stdin is empty, so no job has been sent.\n"
-#~ msgstr "lpr: viga - standardsisend on tühi, ühtegi tööd ei ole saadetud.\n"
-
-#~ msgid "lpr: error - too many files - \"%s\"\n"
-#~ msgstr "lpr: viga - liiga palju faile - \"%s\"\n"
-
-#~ msgid "lpr: error - unable to access \"%s\" - %s\n"
-#~ msgstr "lpr: viga - ligipääs asukohale \"%s\" ebaõnnestus - %s\n"
-
-#~ msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: viga - ei õnnestu luua ajutist faili \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unable to print file: %s\n"
-#~ msgstr "lpr: viga - ei õnnestu trükkida faili: %s\n"
-
-#~ msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: viga - ei õnnestu kirjutada ajutist faili \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unknown option '%c'!\n"
-#~ msgstr "lpr: viga - tundmatu võti '%c'!\n"
-
-#~ msgid ""
-#~ "lpr: warning - '%c' format modifier not supported - output may not be "
-#~ "correct!\n"
-#~ msgstr ""
-#~ "lpr: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib "
-#~ "olla vigane!\n"
-
-#~ msgid "lpr: warning - email notification is not currently supported!\n"
-#~ msgstr "lpr: hoiatus - märguanne e-postiga pole veel toetatud!\n"
-
-#~ msgid "lprm: Job or printer not found!\n"
-#~ msgstr "lprm: tööd või printerit ei leitud!\n"
-
-#~ msgid "lprm: Not authorized to lprm job(s)!\n"
-#~ msgstr "lprm: pole õigust lprm töid!\n"
-
-#~ msgid "lprm: Unable to cancel job(s)!\n"
-#~ msgstr "lprm: tööde katkestamine ei ole võimalik!\n"
-
-#~ msgid "lprm: Unable to lprm job(s)!\n"
-#~ msgstr "lprm: tööde lprm ei ole võimalik!\n"
-
-#~ msgid "lprm: Unknown destination \"%s\"!\n"
-#~ msgstr "lprm: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "lprm: Unknown option '%c'!\n"
-#~ msgstr "lprm: tundmatu võti '%c'!\n"
-
-#~ msgid "lprm: You don't own job ID %d!\n"
-#~ msgstr "lprm: töö ID %d ei kuulu Teile!\n"
-
-#~ msgid "lpstat: Invalid destination name in list \"%s\"!\n"
-#~ msgstr "lpstat: vigane sihtkoha nimi loendis \"%s\"!\n"
-
-#~ msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
-#~ msgstr "lpstat: pärast -W on vajalik \"completed\" või \"not-completed\"!\n"
-
-#~ msgid ""
-#~ "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-#~ msgstr ""
-#~ "lpstat: pärast -W on vajalik \"completed\", \"not-completed\" või \"all"
-#~ "\"!\n"
-
-#~ msgid "lpstat: The -b option requires a destination argument.\n"
-#~ msgstr "lpstat: võti -b nõuab sihtkoha argumenti.\n"
-
-#~ msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
-#~ msgstr "lpstat: ei õnnestu saada ühendust serveriga %s pordis %d: %s\n"
-
-#~ msgid "lpstat: Unknown destination \"%s\"!\n"
-#~ msgstr "lpstat: tundmatu sihtkoht \"%s\"!\n"
-
-#~ msgid "lpstat: Unknown option '%c'!\n"
-#~ msgstr "lpstat: tundmatu võti '%c'!\n"
-
-#~ msgid "lpstat: get-classes failed: %s\n"
-#~ msgstr "lpstat: get-classes ebaõnnestus: %s\n"
-
-#~ msgid "lpstat: get-jobs failed: %s\n"
-#~ msgstr "lpstat: get-jobs ebaõnnestus: %s\n"
-
-#~ msgid "lpstat: get-printers failed: %s\n"
-#~ msgstr "lpstat: get-printers ebaõnnestus: %s\n"
diff --git a/locale/cups_fr.po b/locale/cups_fr.po
index 4d0ff8899..4a3739de3 100644
--- a/locale/cups_fr.po
+++ b/locale/cups_fr.po
@@ -157,7 +157,7 @@ msgstr " WARN ShortNickName requis par spec. PPD 4.3\n
msgid " %s %s %s does not exist!\n"
msgstr " %s %s %s n’existe pas.\n"
msgid " %s Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr " Traduction « %s » UTF-8 erronée pour l’option %s.\n"
+msgstr " %s Traduction « %s » UTF-8 erronée pour l’option %s.\n"
msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
msgstr " %s Traduction « %s » UTF-8 erronée pour l’option %s, choix %s.\n"
msgid " %s Bad cupsFilter value \"%s\"!\n"
@@ -181,7 +181,7 @@ msgstr " %s Option manquante %s dans UIConstraint \"*%s %s *%s %s\".\n"
msgid " %s No base translation \"%s\" is included in file!\n"
msgstr " %s Aucune traduction de base « %s » n’est comprise dans le fichier.\n"
msgid " **FAIL** %s must be 1284DeviceID!\n REF: Page 72, section 5.5\n"
-msgstr " **FAIL** 1284DeviceId doit être 1284DeviceID!\n REF: Page 72, rubrique 5.5\n"
+msgstr " **FAIL** %s doit être 1284DeviceID!\n REF: Page 72, rubrique 5.5\n"
msgid " **FAIL** BAD Default%s %s\n REF: Page 40, section 4.5.\n"
msgstr " **FAIL** Default%s %s ERRONÉ\n REF: Page 40, rubrique 4.5.\n"
msgid " **FAIL** BAD DefaultImageableArea %s!\n REF: Page 102, section 5.15.\n"
@@ -211,7 +211,7 @@ msgstr " **FAIL** langue erronée ˝%s˝.\n"
msgid " **FAIL** Bad LanguageVersion %s - must be English!\n"
msgstr " **FAIL** langue erronée ˝%s˝ - doit être en français.\n"
msgid " **FAIL** Default option code cannot be interpreted: %s\n"
-msgstr " **FAIL** Le code d’option par défaut ne peut être interprété :\n"
+msgstr " **FAIL** Le code d’option par défaut ne peut être interprété : %s\n"
msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
msgstr " **FAIL** La chaîne de traduction par défaut pour le choix %s d’option %s contient des caractères 8 bits.\n"
msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
@@ -459,7 +459,7 @@ msgstr "Ajouter abonnement RSS"
msgid "Administration"
msgstr "Administration"
msgid "Attempt to set %s printer-state to bad value %d!"
-msgstr "Tentative d’atribution d’une valeur erronée au paramètre « printer-state » : %d."
+msgstr "Tentative d’atribution %s d’une valeur erronée au paramètre « printer-state » : %d."
msgid "Attribute groups are out of order (%x < %x)!"
msgstr "Les groupes d’attributs ne sont pas dans le bon ordre (%x < %x)."
msgid "Bad OpenGroup"
@@ -497,7 +497,7 @@ msgstr "Intervalle de pages erroné : %d-%d."
msgid "Bad port-monitor \"%s\"!"
msgstr "Valeur erronée pour le paramètre « port-monitor » : « %s »."
msgid "Bad printer-state value %d!"
-msgstr "Valeur erronée pour le paramètre « printer-state » : « %s »."
+msgstr "Valeur erronée pour le paramètre « printer-state » : « %d »."
msgid "Bad request version number %d.%d!"
msgstr "La requête a un numéro de version erroné : %d.%d."
msgid "Bad subscription ID!"
@@ -535,11 +535,11 @@ msgstr "Matériel : URI = %s\n classe = %s\n info = %s\n
msgid "Door open."
msgstr "Porte ouverte."
msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr "URG : impossible d’allouer de la mémoire pour les informations de la page."
+msgstr "EMERG: impossible d’allouer de la mémoire pour les informations de la page: %s"
msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr "URG : impossible d’allouer de la mémoire pour l’étalage des pages."
+msgstr "EMERG: impossible d’allouer de la mémoire pour l’étalage des pages: %s"
msgid "ERROR: %ld: (canceled:%ld)\n"
-msgstr "ERREUR : %ld: (annulé:%ld)\n"
+msgstr "ERROR: %ld: (annulé:%ld)\n"
msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
msgstr "ERROR: %%BoundingBox erroné : commentaire vu.\n"
msgid "ERROR: Bad %%IncludeFeature: comment!\n"
@@ -549,7 +549,7 @@ msgstr "ERROR: %%Page erroné : commentaire dans le fichier.\n"
msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
msgstr "ERROR: %%PageBoundingBox erroné : commentaire dans le fichier.\n"
msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "ERREUR : fichier d’appareil SCSI erroné ˝%s˝.\n"
+msgstr "ERROR: fichier d’appareil SCSI erroné ˝%s˝.\n"
msgid "ERROR: Bad charset file %s\n"
msgstr "ERROR: fichier charset %s erroné\n"
msgid "ERROR: Bad charset type %s\n"
@@ -593,81 +593,81 @@ msgstr "ERROR: variable d’environnement d’imprimante non définie.\n"
msgid "ERROR: Print file was not accepted (%s)!\n"
msgstr "ERROR: fichier d’impression non accepté (%s).\n"
msgid "ERROR: Printer not responding!\n"
-msgstr "ERREUR : L’imprimante ne répond pas."
+msgstr "ERROR: L’imprimante ne répond pas."
msgid "ERROR: Remote host did not accept control file (%d)\n"
msgstr "ERROR: l’hôte à distance n’a pas accepté le fichier contrôle (%d)\n"
msgid "ERROR: Remote host did not accept data file (%d)\n"
msgstr "ERROR: l’hôte à distance n’a pas accepté le fichier de données (%d)\n"
msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr "ERREUR : impossible d’ajouter le fichier %d à la tâche : %s\n"
+msgstr "ERROR: impossible d’ajouter le fichier %d à la tâche : %s\n"
msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr "ERREUR: impossible d’annuler la tâche %d : %s\n"
+msgstr "ERROR: impossible d’annuler la tâche %d : %s\n"
msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr "ERREUR : impossible de créer un fichier d’impression compressé temporaire : %s\n"
+msgstr "ERROR: impossible de créer un fichier d’impression compressé temporaire : %s\n"
msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr "ERREUR : impossible de créer un fichier temporaire - %s.\n"
+msgstr "ERROR: impossible de créer un fichier temporaire - %s.\n"
msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr "ERREUR : impossible de créer un fichier temporaire : %s\n"
+msgstr "ERROR: impossible de créer un fichier temporaire : %s\n"
msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr "ERREUR : impossible d’exécuter pictwpstops : %s\n"
+msgstr "ERROR: impossible d’exécuter pictwpstops : %s\n"
msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr "ERREUR : impossible de faire un « fork » de pictwpstops: %s\n"
+msgstr "ERROR: impossible de faire un « fork » de pictwpstops: %s\n"
msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr "ERRERUR : Pas de fichier PPD pour l’imprimante « %s » - %s\n"
+msgstr "ERROR: Pas de fichier PPD pour l’imprimante « %s » - %s\n"
msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "ERREUR : impossible d’obtenir les attributs %d de la tâche (%s).\n"
+msgstr "ERROR: impossible d’obtenir les attributs %d de la tâche (%s).\n"
msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr "ERREUR : impossible d’obtenir l’état de l’imprimante (%s)."
+msgstr "ERROR: impossible d’obtenir l’état de l’imprimante (%s)."
msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr "ERREUR : impossible de modifier l’imprimante :"
+msgstr "ERROR: impossible de modifier l’imprimante %s!"
msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "ERREUR : impossible d’ouvrir ˝%s˝ - %s\n"
+msgstr "ERROR: impossible d’ouvrir ˝%s˝ - %s\n"
msgid "ERROR: Unable to open %s: %s\n"
-msgstr "ERREUR : impossible d’ouvrir %s : %s\n"
+msgstr "ERROR: impossible d’ouvrir %s : %s\n"
msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "ERREUR: impossible d’ouvrir le fichier d’appareil « %s » : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’appareil « %s » : %s\n"
msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier « %s » - %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier « %s » - %s\n"
msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier « %s » : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier « %s » : %s\n"
msgid "ERROR: Unable to open image file for printing!\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier image pour l’imprimer.\n"
+msgstr "ERROR: impossible d’ouvrir le fichier image pour l’imprimer.\n"
msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier d’impression « %s » : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’impression « %s » : %s\n"
msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier d’impression %s - %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’impression %s - %s\n"
msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr "ERREUR : impossible d’imprimer le fichier d’impression %s : %s\n"
+msgstr "ERROR: impossible d’imprimer le fichier d’impression %s : %s\n"
msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr "ERREUR : impossible d’ouvrir le fichier d’impression compressé temporaire : %s\n"
+msgstr "ERROR: impossible d’ouvrir le fichier d’impression compressé temporaire : %s\n"
msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
msgstr "ERROR: impossible de chercher jusqu’au décalage %ld dans le fichier - %s\n"
msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
msgstr "ERROR: impossible de chercher jusqu’au décalage %lld dans le fichier - %s\n"
msgid "ERROR: Unable to send print data (%d)\n"
-msgstr "ERREUR : impossible d’envoyer les données d’impression (%d)\n"
+msgstr "ERROR: impossible d’envoyer les données d’impression (%d)\n"
msgid "ERROR: Unable to wait for pictwpstops: %s\n"
msgstr "ERROR: impossible d’attendre les pictwpstop : %s\n"
msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "ERREUR : impossible d’écrire %d octets à « %s » : %s\n"
+msgstr "ERROR: impossible d’écrire %d octets à « %s » : %s\n"
msgid "ERROR: Unable to write print data: %s\n"
-msgstr "ERREUR : impossible d’écrire les données d’impression : %s\n"
+msgstr "ERROR: impossible d’écrire les données d’impression : %s\n"
msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr "ERREUR : impossible d’écrire les données de la trame sur le disque."
+msgstr "ERROR: impossible d’écrire les données de la trame sur le disque."
msgid "ERROR: Unable to write uncompressed document data: %s\n"
msgstr "ERROR: impossible d’écrire des données de document non compressée : %s\n"
msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "ERREUR : valeur d’option de chiffrement inconnu « %s ».\n"
+msgstr "ERROR: valeur d’option de chiffrement inconnu « %s ».\n"
msgid "ERROR: Unknown file order \"%s\"\n"
msgstr "ERROR: ordre de fichier inconnu \"%s\"\n"
msgid "ERROR: Unknown format character \"%c\"\n"
-msgstr "ERROR: caractère de format inconnu \"%s\"\n"
+msgstr "ERROR: caractère de format inconnu \"%c\"\n"
msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "ERREUR : Option inconnue « %s » avec valeur « %s ».\n"
+msgstr "ERROR: Option inconnue « %s » avec valeur « %s ».\n"
msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "ERREUR : mode d’impression inconnu « %s »\n"
+msgstr "ERROR: mode d’impression inconnu « %s »\n"
msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "ERREUR : valeur d’option de version inconnue « %s ».\n"
+msgstr "ERROR: valeur d’option de version inconnue « %s ».\n"
msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
msgstr "ERROR: valeur de luminosité non prise en charge %s, valeur affectée à la luminosité=100.\n"
msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
@@ -683,7 +683,7 @@ msgstr "ERROR: dépassement de capacité de doc_printf (%d octets) détecté, pr
msgid "ERROR: pictwpstops exited on signal %d!\n"
msgstr "ERROR: pictwpstops a quitté au signal %d.\n"
msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr "ERREUR : pictwpstops a quitté avec le statut %d."
+msgstr "ERROR: pictwpstops a quitté avec le statut %d."
msgid "ERROR: recoverable: Unable to connect to printer; will retry in 30 seconds...\n"
msgstr "ERROR: réparable : impossible de se connecter à l’imprimante ; nouvel essai dans 30 secondes...\n"
msgid "ERROR: select() returned %d\n"
@@ -1169,7 +1169,7 @@ msgstr "Le format « %s » n’est pas géré."
msgid "Unsupported format '%s'!"
msgstr "Format non géré « %s »."
msgid "Unsupported format '%s/%s'!"
-msgstr "Le format « %s » n’est pas géré."
+msgstr "Le format « %s/%s » n’est pas géré."
msgid "Usage:\n\n lpadmin [-h server] -d destination\n lpadmin [-h server] -x destination\n lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n [-r remove-class] [-v device] [-D description]\n [-P ppd-file] [-o name=value]\n [-u allow:user,user] [-u deny:user,user]\n\n"
msgstr "Utilisation :\n\n lpadmin [-h serveur] -d destination\n lpadmin [-h serveur] -x destination\n lpadmin [-h serveur] -p imprimante [-c classe] [-i interface] [-m modèle]\n [-r classe] [-v URI] [-D description]\n [-P fichier-ppd] [-o option=valeur]\n [-u allow:util.,util.] [-u deny:util.,util.]\n\n"
msgid "Usage: %s job-id user title copies options [file]\n"
@@ -1201,7 +1201,7 @@ msgstr "Utilisation : lpq [-P dest] [-U nom_utilisateur] [-h nom_machine[:port]]
msgid "Usage: snmp [host-or-ip-address]\n"
msgstr "Usage: snmp [hôte-ou-adresse-ip]\n"
msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "AVERTISSEMENT : expression booléenne attendue pour l’option d’attente « %s ».\n"
+msgstr "WARNING: expression booléenne attendue pour l’option d’attente « %s ».\n"
msgid "WARNING: Couldn't create read channel\n"
msgstr "WARNING: impossible de créer ou lire un canal\n"
msgid "WARNING: Couldn't create side channel\n"
@@ -1221,11 +1221,11 @@ msgstr "WARNING: la commande SCSI a expiré (%d); nouvel essai...\n"
msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
msgstr "WARNING: ce document n’est pas conforme aux normes Adobe (Adobe Document Structuring Conventions) et pourrait être mal imprimé.\n"
msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "AVERTISSEMENT : choix inconu « %s » pour l’option « %s ».\n"
+msgstr "WARNING: choix inconu « %s » pour l’option « %s ».\n"
msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "AVERTISSEMENT : option « %s » inconnue.\n"
+msgstr "WARNING: option « %s » inconnue.\n"
msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "AVERTISSEMENT : %s fréquence de baud non prise en charge."
+msgstr "WARNING: %s fréquence de baud non prise en charge."
msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
msgstr "WARNING: réparable : l’hôte du réseau '%s' est occupé ; nouvel essai dans %d secondes...\n"
msgid "Warning, no Windows 2000 printer drivers are installed!"
@@ -1379,7 +1379,7 @@ msgstr "lpoptions: Pas d’imprimante.?!\n"
msgid "lpoptions: Unable to add printer or instance: %s\n"
msgstr "lpoptions: impossible d’ajouter l’imprimante ou l’instance : %s\n"
msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: impossible d’ouvrir le fichier PPD pour %s.\n"
+msgstr "lpoptions: impossible d’ouvrir le fichier PPD pour %s: %s\n"
msgid "lpoptions: Unable to open PPD file for %s!\n"
msgstr "lpoptions: impossible d’ouvrir le fichier PPD pour %s.\n"
msgid "lpoptions: Unknown printer or class!\n"
@@ -1411,7 +1411,7 @@ msgstr "lppasswd: l’utilisateur « %s » et/ou le groupe « %s » n’existe(n
msgid "lprm: Unable to contact server!\n"
msgstr "lprm: impossible de contacter le serveur.\n"
msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lpstat: erreur - la variable d’environnement désigne une destination\n inexistente « %s ».\n"
+msgstr "lpstat: erreur - la variable %s d’environnement désigne une destination %s.\n"
msgid "members of class %s:\n"
msgstr "membres de la classe %s :\n"
msgid "no entries\n"
diff --git a/locale/cups_he.po b/locale/cups_he.po
index cf79c1108..a32689b5b 100644
--- a/locale/cups_he.po
+++ b/locale/cups_he.po
@@ -334,50 +334,40 @@ msgstr ""
" אזהרה ShortNickName נדרש בספציפיקציה של PPD 4.3.\n"
" ראה: עמודים 64-65, סעיף 5.3.\n"
-#, fuzzy, c-format
msgid " %s %s %s does not exist!\n"
-msgstr " **נכשל** %s %s לא קיים!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
+msgstr ""
-#, fuzzy, c-format
msgid ""
" %s Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
-msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " %s Bad cupsFilter value \"%s\"!\n"
-msgstr " ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " %s Bad cupsPreFilter value \"%s\"!\n"
-msgstr " ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " %s Bad language \"%s\"!\n"
-msgstr " ‫**נכשל** שפה שגויה \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " %s Missing \"%s\" translation string for option %s!\n"
-msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " %s Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
+msgstr ""
#, c-format
msgid " %s Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
msgstr ""
-#, fuzzy, c-format
msgid " %s Missing cupsFilter file \"%s\"\n"
-msgstr " ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " %s Missing cupsPreFilter file \"%s\"\n"
-msgstr " ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
+msgstr ""
#, c-format
msgid " %s Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
@@ -387,13 +377,10 @@ msgstr ""
msgid " %s No base translation \"%s\" is included in file!\n"
msgstr ""
-#, fuzzy, c-format
msgid ""
" **FAIL** %s must be 1284DeviceID!\n"
" REF: Page 72, section 5.5\n"
msgstr ""
-" **נכשל** 1284DeviceId חייב להיות 1284DeviceID!\n"
-" ראה: עמוד 72, סעיף 5.5\n"
#, c-format
msgid ""
@@ -433,13 +420,10 @@ msgstr ""
" **נכשל** שגוי Manufacturer (צריך להיות \"HP\")\n"
" ראה: עמוד 211, טבלה D.1.\n"
-#, fuzzy
msgid ""
" **FAIL** BAD Manufacturer (should be \"Oki\")\n"
" REF: Page 211, table D.1.\n"
msgstr ""
-" **נכשל** שגוי Manufacturer (צריך להיות \"HP\")\n"
-" ראה: עמוד 211, טבלה D.1.\n"
#, c-format
msgid ""
@@ -486,18 +470,14 @@ msgstr ""
" **נכשל** שגוי %s בחירה %s!\n"
" ראה: עמוד 84, סעיף 5.9\n"
-#, fuzzy, c-format
msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1!\n"
-msgstr " ‫**נכשל** שפה שגויה \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " **FAIL** Bad LanguageVersion %s - must be English!\n"
-msgstr " ‫**נכשל** שפה שגויה \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s\n"
msgstr ""
-" ‫**נכשל** מחרוזת תרגום ברירת מחדל לאופציה %s מכילה תווים של 8 סיביות!\n"
#, c-format
msgid ""
@@ -664,9 +644,8 @@ msgstr ""
" **נכשל** נדרש ShortNickName\n"
" ראה: עמודים 64-65, סעיף 5.3.\n"
-#, fuzzy, c-format
msgid " %d ERRORS FOUND\n"
-msgstr " נמצאו %d שגיאה%s\n"
+msgstr ""
#, c-format
msgid ""
@@ -1066,9 +1045,8 @@ msgstr "%s: יעד לא ידוע \"%s\"!\n"
msgid "%s: Unknown destination MIME type %s/%s!\n"
msgstr ""
-#, fuzzy, c-format
msgid "%s: Unknown option '%c'!\n"
-msgstr "lp: אופציה לא ידועה '%c'!\n"
+msgstr ""
#, c-format
msgid "%s: Unknown source MIME type %s/%s!\n"
@@ -1186,21 +1164,17 @@ msgstr "ערך job-state שגוי!"
msgid "Bad job-uri attribute \"%s\"!"
msgstr "ערך \"%s\" למאפיין job-uri שגוי!"
-#, fuzzy, c-format
msgid "Bad notify-pull-method \"%s\"!"
-msgstr "port-monitor \"%s\" שגוי!"
+msgstr ""
-#, fuzzy, c-format
msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr "device-uri \"%s\" שגוי!"
+msgstr ""
-#, fuzzy, c-format
msgid "Bad number-up value %d."
-msgstr "ערך העותקים %d שגוי."
+msgstr ""
-#, fuzzy, c-format
msgid "Bad option + choice on line %d!"
-msgstr "אופציה + אפשרות שגויים בשורה %d!\n"
+msgstr ""
#, c-format
msgid "Bad page-ranges values %d-%d."
@@ -1218,9 +1192,8 @@ msgstr "ערך %d עבור printer-state שגוי!"
msgid "Bad request version number %d.%d!"
msgstr "בקשה שגויה מספר גרסה %d.%d!"
-#, fuzzy
msgid "Bad subscription ID!"
-msgstr "לא נמצאו מינויים."
+msgstr ""
msgid "Banners"
msgstr "כרזות"
@@ -1289,13 +1262,11 @@ msgstr ""
msgid "Door open."
msgstr ""
-#, fuzzy, c-format
msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
+msgstr ""
-#, fuzzy, c-format
msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
+msgstr ""
#, c-format
msgid "ERROR: %ld: (canceled:%ld)\n"
@@ -1317,9 +1288,8 @@ msgstr ""
msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr "device-uri \"%s\" שגוי!"
+msgstr ""
#, c-format
msgid "ERROR: Bad charset file %s\n"
@@ -1400,9 +1370,8 @@ msgstr ""
msgid "ERROR: Print file was not accepted (%s)!\n"
msgstr ""
-#, fuzzy
msgid "ERROR: Printer not responding!\n"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
#, c-format
msgid "ERROR: Remote host did not accept control file (%d)\n"
@@ -1412,89 +1381,68 @@ msgstr ""
msgid "ERROR: Remote host did not accept data file (%d)\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr "lprm: לא יכול לבטל עבוד/ות!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr "%s: לא מצליח להתחבר לשרת: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr "לא מצליח לפצל תהליך!"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr "cupsaddsmb: לא קיים קובץ PPD למדפסת \"%s\" - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "לא מצליח לקבל מאפייני מדפסת!"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr "לא מצליח לקבל סטטוס מדפסת:"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr "לא מצליח למחוק מדפסת:"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr "lp: לא מצליח לגשת ל- \"%s\" - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open %s: %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
-#, fuzzy
msgid "ERROR: Unable to open image file for printing!\n"
-msgstr "lpoptions: ‫לא מצליח לפתוח קובץ PPD עבור %s!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ \"%s\": %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr "lpadmin: לא מצליח לפתוח קובץ PPD \"%s\" - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr "lp: לא מצליח להדפיס קובץ: %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr "lpadmin: לא מצליח ליצור קובץ זמני: %s\n"
+msgstr ""
#, c-format
msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
@@ -1504,33 +1452,28 @@ msgstr ""
msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to send print data (%d)\n"
-msgstr "לא מצליח לקבוע מנהל התקן הדפסה של Windows (%d)!\n"
+msgstr ""
#, c-format
msgid "ERROR: Unable to wait for pictwpstops: %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "lp: לא מצליח לגשת ל- \"%s\" - %s\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unable to write print data: %s\n"
-msgstr "lp: לא מצליח להדפיס קובץ: %s\n"
+msgstr ""
-#, fuzzy
msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr "לא מצליח לקבל מאפייני מדפסת!"
+msgstr ""
#, c-format
msgid "ERROR: Unable to write uncompressed document data: %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
#, c-format
msgid "ERROR: Unknown file order \"%s\"\n"
@@ -1540,17 +1483,14 @@ msgstr ""
msgid "ERROR: Unknown format character \"%c\"\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "cupsd: אופציה לא ידועה \"%c\" - נוטש!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
#, c-format
msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
@@ -1581,9 +1521,8 @@ msgstr ""
msgid "ERROR: pictwpstops exited on signal %d!\n"
msgstr ""
-#, fuzzy, c-format
msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr "cupsaddsmb נכשל עם סטטוס %d"
+msgstr ""
msgid ""
"ERROR: recoverable: Unable to connect to printer; will retry in 30 "
@@ -1597,9 +1536,8 @@ msgstr ""
msgid "Edit Configuration File"
msgstr "ערוך קובץ הגדרות"
-#, fuzzy
msgid "Empty PPD file!"
-msgstr "לא ניתן להעתיק קובץ PPD!"
+msgstr ""
msgid "Ending Banner"
msgstr "כרזת סיום"
@@ -1613,12 +1551,11 @@ msgstr "הכנס סיסמא שוב:"
msgid "Enter password:"
msgstr "הכנס סיסמא:"
-#, fuzzy
msgid ""
"Enter your username and password or the root username and password to access "
"this page. If you are using Kerberos authentication, make sure you have a "
"valid Kerberos ticket."
-msgstr "הקלד שם משתמש וסיסמה או שם משתמש \"root\" וסיסמה כדי לגשת לדף זה."
+msgstr ""
msgid "Error Policy"
msgstr "מדיניות שגיאה"
@@ -1663,9 +1600,8 @@ msgstr "עזרה"
msgid "INFO: Attempting to connect to host %s for printer %s\n"
msgstr ""
-#, fuzzy, c-format
msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "lpstat: לא מצליח להתחבר לשרת %s בפתחה %d: %s\n"
+msgstr ""
msgid "INFO: Canceling print job...\n"
msgstr ""
@@ -1818,9 +1754,8 @@ msgstr "עבודה #%d לא קיימת!"
msgid "Job #%d is already aborted - can't cancel."
msgstr "עבודה #%d ננטשה כבר - לא יכול לבטל"
-#, fuzzy, c-format
msgid "Job #%d is already canceled - can't cancel."
-msgstr "עבודה #%d בוטלה כבר - לא יכול לבטל."
+msgstr ""
#, c-format
msgid "Job #%d is already completed - can't cancel."
@@ -1850,20 +1785,17 @@ msgstr "עבודה #%s לא קיימת!"
msgid "Job %d not found!"
msgstr "עבודה %d לא נמצאה!"
-#, fuzzy
msgid "Job Completed"
-msgstr "הסתיים"
+msgstr ""
msgid "Job Created"
msgstr ""
-#, fuzzy
msgid "Job Options Changed"
-msgstr "פעולת עבודה נכשלה:"
+msgstr ""
-#, fuzzy
msgid "Job Stopped"
-msgstr "עצורה"
+msgstr ""
msgid "Job is completed and cannot be changed."
msgstr "עבודה הסתיימה ולא ניתנת לשינוי."
@@ -1899,9 +1831,8 @@ msgstr "מקור דף"
msgid "Media Type"
msgstr "סוג דף"
-#, fuzzy
msgid "Media jam!"
-msgstr "גודל דף"
+msgstr ""
msgid "Media tray almost empty."
msgstr ""
@@ -1924,9 +1855,8 @@ msgstr "‫חסרה כותרת PPD-Adobe-4.x"
msgid "Missing asterisk in column 1"
msgstr "חסרה כוכבית בטור 1"
-#, fuzzy, c-format
msgid "Missing double quote on line %d!"
-msgstr "חסרים גרשיים בשורה %d!\n"
+msgstr ""
msgid "Missing form variable!"
msgstr "חסר משתנה טופס!"
@@ -1940,9 +1870,8 @@ msgstr "המאפיין requesting-user-name חסר!"
msgid "Missing required attributes!"
msgstr "חסרים מאפיינים נדרשים!"
-#, fuzzy, c-format
msgid "Missing value on line %d!"
-msgstr "חסר ערך בשורה %d!\n"
+msgstr ""
msgid "Missing value string"
msgstr "חסר מחרוזת ערך"
@@ -2015,9 +1944,8 @@ msgstr "לא נמצאו מינויים."
msgid "None"
msgstr "כלום"
-#, fuzzy
msgid "Not allowed to print."
-msgstr "אין מדפסת ברירת מחדל"
+msgstr ""
msgid "OK"
msgstr "אישור"
@@ -2094,28 +2022,23 @@ msgstr "עבודת הדפסה:"
msgid "Print Test Page"
msgstr "הדפס עמוד ניסיון"
-#, fuzzy
msgid "Printer Added"
-msgstr "מדפסת"
+msgstr ""
-#, fuzzy
msgid "Printer Deleted"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
msgid "Printer Maintenance"
msgstr "אחזקת מדפסת"
-#, fuzzy
msgid "Printer Modified"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
-#, fuzzy
msgid "Printer Stopped"
-msgstr "מדפסת לא משותפת!"
+msgstr ""
-#, fuzzy
msgid "Printer off-line."
-msgstr "אחזקת מדפסת"
+msgstr ""
msgid "Printer:"
msgstr "מדפסת:"
@@ -2165,9 +2088,8 @@ msgstr "קבע משתמשים מורשים"
msgid "Set As Default"
msgstr "קבע כברירת-מחדל"
-#, fuzzy
msgid "Set Class Options"
-msgstr "קבע אופציות מדפסת"
+msgstr ""
msgid "Set Printer Options"
msgstr "קבע אופציות מדפסת"
@@ -2242,13 +2164,10 @@ msgid ""
msgstr ""
"ה printer-uri חייב להיות מהצורה \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-#, fuzzy
msgid ""
"The subscription name may not contain spaces, slashes (/), question marks "
"(?), or the pound sign (#)."
msgstr ""
-"‫שם המחלקה יכול להכיל עד 127 תווים דפיסים, למעט רווחים, לוכסנים (/) וסולמית "
-"(#)."
msgid "Toner low."
msgstr ""
@@ -2259,9 +2178,8 @@ msgstr "יותר מדי עבודות פעילות."
msgid "Unable to access cupsd.conf file:"
msgstr "‫לא מצליח לגשת לקובץ cupsd.conf:"
-#, fuzzy
msgid "Unable to add RSS subscription:"
-msgstr "לא מצליח להוסיף מדפסת:"
+msgstr ""
msgid "Unable to add class:"
msgstr "לא מצליח להוסיף מחלקה:"
@@ -2276,9 +2194,8 @@ msgstr "לא מצליח להוסיף מדפסת:"
msgid "Unable to allocate memory for file types!"
msgstr "הקצאת זיכרון לסוגי קבצים נכשלה!"
-#, fuzzy
msgid "Unable to cancel RSS subscription:"
-msgstr "לא מצליח לשנות מדפסת:"
+msgstr ""
msgid "Unable to change printer-is-shared attribute:"
msgstr "‫לא מצליח לשנות מאפיין printer-is-shared:"
@@ -2385,16 +2302,14 @@ msgstr "‫לא מצליח לפתוח קובץ cupsd.conf:"
msgid "Unable to print test page:"
msgstr "לא מצליח להדפיס עמוד ניסיון:"
-#, fuzzy, c-format
msgid "Unable to run \"%s\": %s\n"
-msgstr "cupsaddsmb: לא מצליח להריץ \"%s\": %s\n"
+msgstr ""
msgid "Unable to send maintenance job:"
msgstr "לא מצליח לשלוח עבודת תחזוקה:"
-#, fuzzy, c-format
msgid "Unable to set Windows printer driver (%d)!"
-msgstr "לא מצליח לקבוע מנהל התקן הדפסה של Windows (%d)!\n"
+msgstr ""
msgid "Unable to set options:"
msgstr "לא מצליח לקבוע אופציות:"
@@ -2405,9 +2320,8 @@ msgstr "‫לא מצליח להעלות קובץ cupsd.conf:"
msgid "Unknown"
msgstr "לא ידוע"
-#, fuzzy, c-format
msgid "Unknown printer error (%s)!"
-msgstr "printer-error-policy \"%s\" לא ידוע."
+msgstr ""
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
@@ -2623,9 +2537,8 @@ msgstr ""
msgid "Usage: snmp [host-or-ip-address]\n"
msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr "lp: מצפה לטופס אחרי האופציה -f!\n"
+msgstr ""
msgid "WARNING: Couldn't create read channel\n"
msgstr ""
@@ -2667,17 +2580,14 @@ msgid ""
"Conventions and may not print correctly!\n"
msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr "%s: יעד לא ידוע \"%s\"!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "%s: אופציה לא ידועה '%c'!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr "מבנה \"%s\" לא נתמך!"
+msgstr ""
#, c-format
msgid ""
@@ -2721,13 +2631,11 @@ msgstr "נכשלה הפעלת cups-driverd."
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
msgstr "cupsaddsmb: לא קיים קובץ PPD למדפסת \"%s\" - %s\n"
-#, fuzzy, c-format
msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cancel: אופציה לא ידועה '%c'!\n"
+msgstr ""
-#, fuzzy, c-format
msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr "cancel: אופציה לא ידועה '%c'!\n"
+msgstr ""
msgid "cupsd: Expected config filename after \"-c\" option!\n"
msgstr "cupsd: מצפה לשם קובץ תצורה לאחר האופציה \"-c\"!\n"
@@ -2966,9 +2874,8 @@ msgstr "lpoptions: אין מדפסות!?!\n"
msgid "lpoptions: Unable to add printer or instance: %s\n"
msgstr "lpoptions: לא מצליח להוסיף מדפסת או מופע-מדפסת: %s\n"
-#, fuzzy, c-format
msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: ‫לא מצליח לפתוח קובץ PPD עבור %s!\n"
+msgstr ""
#, c-format
msgid "lpoptions: Unable to open PPD file for %s!\n"
@@ -3122,538 +3029,3 @@ msgstr "לא ידוע"
msgid "untitled"
msgstr "ללא שם"
-
-#~ msgid " **FAIL** %s %s does not exist!\n"
-#~ msgstr " **נכשל** %s %s לא קיים!\n"
-
-#, fuzzy
-#~ msgid " **FAIL** Bad UTF-8 \"%s\" translation string for option %s!\n"
-#~ msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
-
-#, fuzzy
-#~ msgid ""
-#~ " **FAIL** Bad UTF-8 \"%s\" translation string for option %s, choice "
-#~ "%s!\n"
-#~ msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
-
-#~ msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
-#~ msgstr " ‫**נכשל** ל cupsFilter ערך שגוי \"%s\"!\n"
-
-#~ msgid " **FAIL** Bad language \"%s\"!\n"
-#~ msgstr " ‫**נכשל** שפה שגויה \"%s\"!\n"
-
-#~ msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
-#~ msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s!\n"
-
-#~ msgid ""
-#~ " **FAIL** Missing \"%s\" translation string for option %s, choice %"
-#~ "s!\n"
-#~ msgstr " ‫**נכשל** חסר \"%s\" מחרוזת תרגום לאופציה %s, בחירה %s!\n"
-
-#~ msgid "%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s מקבלת בקשות מאז 01 ינואר 00:00\n"
-
-#~ msgid ""
-#~ "%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s לא מקבלת בקשות מאז 01 ינואר 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s/%s accepting requests since Jan 01 00:00\n"
-#~ msgstr "%s/%s מקבלת בקשות מאז 01 ינואר 00:00\n"
-
-#~ msgid ""
-#~ "%s/%s not accepting requests since Jan 01 00:00 -\n"
-#~ "\t%s\n"
-#~ msgstr ""
-#~ "%s/%s לא מקבלת בקשות מאז 01 ינואר 00:00 -\n"
-#~ "\t%s\n"
-
-#~ msgid "%s: Expected reason text after -r!\n"
-#~ msgstr "%s: מצפה לטקסט סיבה אחרי -r!\n"
-
-#~ msgid "%s: Expected server name after -h!\n"
-#~ msgstr "%s: מצפה לשם שרת אחרי -h!\n"
-
-#~ msgid "Auto"
-#~ msgstr "אוטומטי"
-
-#~ msgid "Class"
-#~ msgstr "מחלקה"
-
-#~ msgid ""
-#~ "Device: uri = %s\n"
-#~ " class = %s\n"
-#~ " info = %s\n"
-#~ " make-and-model = %s\n"
-#~ msgstr ""
-#~ "התקן: uri ‏= %s\n"
-#~ " מחלקה = %s\n"
-#~ " מידע = %s\n"
-#~ " יצרן ודגם = %s\n"
-
-#, fuzzy
-#~ msgid "ERROR: %ld: Unable to send print file to printer (canceled:%ld)\n"
-#~ msgstr "lpoptions: לא מצליח להוסיף מדפסת או מופע-מדפסת: %s\n"
-
-#~ msgid "Extra"
-#~ msgstr "נוסף"
-
-#~ msgid "Job #%d doesn't exist!"
-#~ msgstr "עבודה #%d לא קיימת!"
-
-#~ msgid "Job #%d is already %s - can't cancel."
-#~ msgstr "עבודה #%d כבר %s לא ניתן לבטל."
-
-#~ msgid ""
-#~ "Model: name = %s\n"
-#~ " natural_language = %s\n"
-#~ " make-and-model = %s\n"
-#~ msgstr ""
-#~ "דגם: שם = %s\n"
-#~ " שפה טבעית = %s\n"
-#~ " יצרן ודגם = %s\n"
-
-#~ msgid "No Windows printer drivers are installed!\n"
-#~ msgstr "לא מותקנים מנהלי התקני מדפסת של Windows!\n"
-
-#~ msgid "No printer drivers found!"
-#~ msgstr "לא נמצאו מנהלי התקני מדפסת!"
-
-#~ msgid "Not authorized to hold job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה להשהות עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
-#~ msgstr "מריץ פקודה: %s %s -N -U '%s%%%s' -c '%s'\n"
-
-#~ msgid "The printer-uri \"%s\" is not valid."
-#~ msgstr "ה printer-uri \"%s\" לא תקף."
-
-#~ msgid "Too many jobs - %d jobs, max jobs is %d."
-#~ msgstr "יותר מדי עבודות - %d עבודות, המקסימום הוא %d."
-
-#~ msgid "Unable to connect to server!"
-#~ msgstr "לא מצליח להתחבר לשרת!"
-
-#~ msgid "Unable to convert PPD file!"
-#~ msgstr "‫לא מצליח להמיר קובץ PPD!"
-
-#~ msgid "Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להעתיק קבצי מנהל התקן הדפסה של CUPS (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 2000 (%d)!\n"
-
-#~ msgid "Unable to copy Windows 2000 printer driver files!"
-#~ msgstr "‫לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 2000!"
-
-#~ msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 9x (%d)!\n"
-
-#~ msgid "Unable to copy Windows 9x printer driver files!"
-#~ msgstr "‫לא מצליח להעתיק קבצי מנהל התקן הדפסה של Windows 9x!"
-
-#~ msgid "Unable to execute cupsaddsmb command!"
-#~ msgstr "‫לא מצליח לבצע פקודת cupsaddsmb!"
-
-#~ msgid "Unable to get PPD file!"
-#~ msgstr "‫לא מצליח לקבל קובץ PPD!"
-
-#~ msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 2000 (%d)!\n"
-
-#~ msgid "Unable to install Windows 2000 printer driver files!"
-#~ msgstr "‫לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 2000!"
-
-#~ msgid "Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr "לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 9x (%d)!\n"
-
-#~ msgid "Unable to install Windows 9x printer driver files!"
-#~ msgstr "‫לא מצליח להתקין קבצי מנהל התקן הדפסה של Windows 9x!"
-
-#~ msgid "Unable to set Windows printer driver!"
-#~ msgstr "‫לא מצליח לקבוע מנהל התקן הדפסה של Windows!"
-
-#~ msgid ""
-#~ "Usage: cupsaddsmb [options] printer1 ... printerN\n"
-#~ " cupsaddsmb [options] -a\n"
-#~ "\n"
-#~ "Options:\n"
-#~ " -H samba-server Use the named SAMBA server\n"
-#~ " -U samba-user Authenticate using the named SAMBA user\n"
-#~ " -a Export all printers\n"
-#~ " -h cups-server Use the named CUPS server\n"
-#~ " -v Be verbose (show commands)\n"
-#~ msgstr ""
-#~ "Usage: cupsaddsmb [options] printer1 ... printerN\n"
-#~ " cupsaddsmb [options] -a\n"
-#~ "\n"
-#~ "Options:\n"
-#~ " -H samba-server השתמש בשרת SAMBA המצויין\n"
-#~ " -U samba-user הזדהה בעזרת שם משתמש SAMBA המצויין\n"
-#~ " -a ייצא את כל המדפסות\n"
-#~ " -h cups-server השתמש בשרת CUPS המצויין\n"
-#~ " -v פלט מפורט (הצג פקודות)\n"
-
-#~ msgid ""
-#~ "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd"
-#~ "[.gz]]\n"
-#~ " program | cupstestppd [-q] [-r] [-v[v]] -\n"
-#~ msgstr ""
-#~ "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd"
-#~ "[.gz]]\n"
-#~ " program | cupstestppd [-q] [-r] [-v[v]] -\n"
-
-#~ msgid "Usage: lpmove job dest\n"
-#~ msgstr "Usage: lpmove job dest\n"
-
-#~ msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
-#~ msgstr "Usage: lpq [-P dest] [-l] [+interval]\n"
-
-#~ msgid "Variable"
-#~ msgstr "משתנה"
-
-#~ msgid "Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr "אזהרה, לא מותקנים מנהלי התקני מדפסת של Windows 2000!\n"
-
-#~ msgid "You are not authorized to alter job id %d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשנות עבודה מספר %d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לאמת עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to delete job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה למחוק עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to move job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה להעביר עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to release job id %d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשחרר עבודה מספר %d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to restart job id %d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשחזר עבודה מספר %d בבעלות \"%s\"!"
-
-#~ msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
-#~ msgstr "אינך מורשה לשלוח מסמך עבור עבודה #%d בבעלות \"%s\"!"
-
-#~ msgid "You must use a https: URL to access this page."
-#~ msgstr "יש להשתמש ב https: URL כדי לגשת לדף זה."
-
-#~ msgid "add_class: Unknown printer-error-policy \"%s\"."
-#~ msgstr "add_class: printer-error-policy \"%s\" לא ידוע."
-
-#~ msgid "add_class: Unknown printer-op-policy \"%s\"."
-#~ msgstr "add_class: printer-op-policy \"%s\" לא ידוע."
-
-#~ msgid "cancel: %s failed: %s\n"
-#~ msgstr "cancel: %s נכשל: %s\n"
-
-#~ msgid "cancel: Error - expected hostname after '-h' option!\n"
-#~ msgstr "cancel: שגיאה - מצפה לשם שרת אחרי אופציה '-h'!\n"
-
-#~ msgid "cancel: Error - expected username after '-u' option!\n"
-#~ msgstr "cancel: שגיאה - מצפה לשם משתמש אחרי אופציה '-u'!\n"
-
-#~ msgid "cancel: Unable to contact server!\n"
-#~ msgstr "cancel: לא מצליח לתקשר עם השרת!\n"
-
-#~ msgid "cancel: Unknown destination \"%s\"!\n"
-#~ msgstr "cancel: יעד לא ידוע \"%s\"!\n"
-
-#~ msgid "cupsaddsmb crashed on signal %d"
-#~ msgstr "cupsaddsmb התרסק עם איתות %d"
-
-#~ msgid "cupsaddsmb: Bad option + choice on line %d!\n"
-#~ msgstr "cupsaddsmb: אופציה + בחירה שגויים בשורה %d!\n"
-
-#~ msgid "cupsaddsmb: Missing double quote on line %d!\n"
-#~ msgstr "cupsaddsmb: חסר גרשיים בשורה %d!\n"
-
-#~ msgid "cupsaddsmb: Missing value on line %d!\n"
-#~ msgstr "cupsaddsmb: חסר ערך בשורה %d!\n"
-
-#~ msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
-#~ msgstr "cupsaddsmb: אין קובץ PPD למדפסת \"%s\" - מדלג!\n"
-
-#~ msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
-#~ msgstr "cupsaddsmb: לא מותקנים מנהלי התקני מדפסת של Windows!\n"
-
-#~ msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
-#~ msgstr "cupsaddsmb: לא מצליח להתחבר לשרת \"%s\" עבור %s - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
-#~ msgstr "cupsaddsmb: לא מצליח להמיר קובץ PPD עבור %s - %s\n"
-
-#~ msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
-#~ msgstr "cupsaddsmb: לא מצליח להעתיק קבצי מנהל התקן מדפסת של CUPS (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להעתיק קבצי מנהל התקן מדפסת של Windows 2000 (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להעתיק קבצי מנהל התקן מדפסת של Windows 9x (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להתקין קבצי מנהל התקן מדפסת של Windows 2000 (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-#~ msgstr ""
-#~ "cupsaddsmb: לא מצליח להתקין קבצי מנהל התקן מדפסת של Windows 9x (%d)!\n"
-
-#~ msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
-#~ msgstr "cupsaddsmb: לא מצליח לקבע מנהל התקן מדפסת של Windows (%d)!\n"
-
-#~ msgid ""
-#~ "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-#~ msgstr "cupsaddsmb: אזהרה, לא מותקנים מנהלי התקני מדפסת של Windows 2000!\n"
-
-#~ msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
-#~ msgstr "cupsaddsmb: get-printer-attributes נכשל עבור \"%s\": %s\n"
-
-#, fuzzy
-#~ msgid "cupsfilter: Unknown destination MIME type %s/%s!\n"
-#~ msgstr "lpq: יעד לא ידוע \"%s/%s\"!\n"
-
-#~ msgid "lp: Error - bad job ID!\n"
-#~ msgstr "lp: שגיאה - מזהה עבודה שגוי!\n"
-
-#~ msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
-#~ msgstr "lp: שגיאה - לא יכול להדפיס קבצים ולשנות עבודות בו-זמנית!\n"
-
-#~ msgid ""
-#~ "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-#~ msgstr ""
-#~ "lp: שגיאה - לא יכול להדפיס מ- stdin אם מסופקים קבצים או מזהה עבודה!\n"
-
-#~ msgid "lp: Expected character set after -S option!\n"
-#~ msgstr "lp: מצפה ל- character set לאחר האופציה -S!\n"
-
-#~ msgid "lp: Expected content type after -T option!\n"
-#~ msgstr "lp: מצפה לסוג תוכן לאחר האופציה -T!\n"
-
-#~ msgid "lp: Expected copies after -n option!\n"
-#~ msgstr ""
-#~ "lp: מצפה לכמות עותקים לאחר האופציה -n!\n"
-#~ " "
-
-#~ msgid "lp: Expected destination after -d option!\n"
-#~ msgstr "lp: מצפה ליעד אחרי האופציה -d!\n"
-
-#~ msgid "lp: Expected hold name after -H option!\n"
-#~ msgstr "lp: מצפה לשם עצירה לאחר האופציה -H!"
-
-#~ msgid "lp: Expected hostname after -h option!\n"
-#~ msgstr "lp: מצפה לשם מארח לאחר האופציה -h!\n"
-
-#~ msgid "lp: Expected job ID after -i option!\n"
-#~ msgstr "lp: מצפה למזהה עבודה לאחר האופציה -i!\n"
-
-#~ msgid "lp: Expected mode list after -y option!\n"
-#~ msgstr "lp: מצפה לרשימת מצבים לאחר האופציה -y!\n"
-
-#~ msgid "lp: Expected option string after -o option!\n"
-#~ msgstr "lp: מצפה למחרוזת אחרי האופציה -o!\n"
-
-#~ msgid "lp: Expected page list after -P option!\n"
-#~ msgstr "lp: מצפה לרשימת עמודים לאחר האופציה -P!\n"
-
-#~ msgid "lp: Expected priority after -%c option!\n"
-#~ msgstr "lp: מצפה לעדיפות אחרי האופציה -%c!\n"
-
-#~ msgid "lp: Expected title after -t option!\n"
-#~ msgstr "lp: מצפה לכותרת אחרי האופציה -t!\n"
-
-#~ msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
-#~ msgstr "lp: צריך מזהה עבודה (-i) לפני \"-H restart\"!\n"
-
-#~ msgid "lp: Priority must be between 1 and 100.\n"
-#~ msgstr "lp: עדיפות חייבת להיות בין 1 ל 100.\n"
-
-#~ msgid "lp: Too many files - \"%s\"\n"
-#~ msgstr "lp: יותר מדי קבצים - \"%s\"\n"
-
-#~ msgid "lp: Warning - character set option ignored!\n"
-#~ msgstr "lp: אזהרה - מתעלם מאופצית character set!\n"
-
-#~ msgid "lp: Warning - content type option ignored!\n"
-#~ msgstr "lp: אזהרה - מתעלם מאופצית סוג תוכן!\n"
-
-#~ msgid "lp: Warning - mode option ignored!\n"
-#~ msgstr "lp: אזהרה - מתעלם מאופצית מצב!\n"
-
-#~ msgid ""
-#~ "lp: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lp: שגיאה - משתנה הסביבה %s מציין יעד לא קיים \"%s\"!\n"
-
-#~ msgid "lp: error - no default destination available.\n"
-#~ msgstr "lp: שגיאה - אין יעד ברירת מחדל זמין.\n"
-
-#~ msgid "lp: error - scheduler not responding!\n"
-#~ msgstr "lp: שגיאה - מתזמן המשימות לא מגיב!\n"
-
-#~ msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lp: שגיאה - לא מצליח לכתוב לקובץ זמני \"%s\" - %s\n"
-
-#~ msgid "lp: restart-job failed: %s\n"
-#~ msgstr "lp: שחזור-עבודה (restart-job) נכשל: %s\n"
-
-#~ msgid "lp: set-job-attributes failed: %s\n"
-#~ msgstr "lp: קביעת-מאפייני-עבודה (set-job-attributes) נכשל: %s\n"
-
-#~ msgid "lp: stdin is empty, so no job has been sent.\n"
-#~ msgstr "lp: stdin ריק, לפיכך לא נשלחה אף עבודה.\n"
-
-#~ msgid "lp: unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lp: לא מצליח ליצור קובץ זמני \"%s\" - %s\n"
-
-#~ msgid "lpadmin: %s failed: %s\n"
-#~ msgstr "lpadmin: %s נכשל: %s\n"
-
-#~ msgid "lpadmin: add-printer (set description) failed: %s\n"
-#~ msgstr "lpadmin: הוספת-מדפסת (קביעת תאור) נכשלה: %s\n"
-
-#~ msgid "lpadmin: add-printer (set location) failed: %s\n"
-#~ msgstr "lpadmin: הוספת-מדפסת (קביעת מיקום) נכשלה: %s\n"
-
-#~ msgid "lpadmin: add-printer (set model) failed: %s\n"
-#~ msgstr "lpadmin: הוספת-מדפסת (קביעת דגם) נכשלה: %s\n"
-
-#~ msgid "lpinfo: cups-get-devices failed: %s\n"
-#~ msgstr "lpinfo: cups-get-devices נכשל: %s\n"
-
-#~ msgid "lpinfo: cups-get-ppds failed: %s\n"
-#~ msgstr "lpinfo: cups-get-ppds נכשל: %s\n"
-
-#~ msgid "lpmove: move-job failed: %s\n"
-#~ msgstr "lpmove: העבר-עבודה (move-job) נכשל: %s\n"
-
-#~ msgid "lpoptions: Destination %s has no PPD file!\n"
-#~ msgstr "lpoptions: ‫ליעד %s אין קובץ PPD!\n"
-
-#~ msgid "lpq: Unable to contact server!\n"
-#~ msgstr "lpq: לא מצליח לתקשר עם השרת!\n"
-
-#~ msgid "lpq: Unknown destination \"%s\"!\n"
-#~ msgstr "lpq: יעד לא ידוע \"%s\"!\n"
-
-#~ msgid "lpq: error - no default destination available.\n"
-#~ msgstr "lpq: שגיאה - אין יעד ברירת מחדל זמין.\n"
-
-#~ msgid "lpq: get-jobs failed: %s\n"
-#~ msgstr "lpq: get-jobs נכשל: %s\n"
-
-#~ msgid "lpq: get-printer-attributes failed: %s\n"
-#~ msgstr "lpq: get-printer-attributes נכשל: %s\n"
-
-#~ msgid ""
-#~ "lpr: error - %s environment variable names non-existent destination \"%s"
-#~ "\"!\n"
-#~ msgstr "lpr: שגיאה - משתנה הסביבה %s מציין יעד לא קיים \"%s\"!\n"
-
-#~ msgid "lpr: error - expected copy count after -# option!\n"
-#~ msgstr "lpr: שגיאה - מצפה למספר עותקים לאחר אופציה -#!\n"
-
-#~ msgid "lpr: error - expected destination after -P option!\n"
-#~ msgstr "lpr: שגיאה - מצפה ליעד לאחר אופציה -P!\n"
-
-#~ msgid "lpr: error - expected name after -%c option!\n"
-#~ msgstr "lpr: שגיאה - מצפה לשם לאחר אופציה -%c!\n"
-
-#~ msgid "lpr: error - expected option=value after -o option!\n"
-#~ msgstr "lpr: שגיאה - מצפה ל אופציה=ערך לאחר אופציה -o!\n"
-
-#~ msgid "lpr: error - expected username after -U option!\n"
-#~ msgstr "lpr: שגיאה - מצפה לשם משתמש לאחר אופציה -U!\n"
-
-#~ msgid "lpr: error - expected value after -%c option!\n"
-#~ msgstr "lpr: שגיאה - מצפה לערך לאחר אופציה -%c!\n"
-
-#~ msgid "lpr: error - no default destination available.\n"
-#~ msgstr "lpr: שגיאה - אין יעד ברירת מחדל זמין.\n"
-
-#~ msgid "lpr: error - scheduler not responding!\n"
-#~ msgstr "lpr: שגיאה - מתזמן לא מגיב!\n"
-
-#~ msgid "lpr: error - stdin is empty, so no job has been sent.\n"
-#~ msgstr "lpr: שגיאה - stdin ריק, לפיכך לא נשלחה אף עבודה.\n"
-
-#~ msgid "lpr: error - too many files - \"%s\"\n"
-#~ msgstr "lpr: שגיאה - יותר מדי קבצים - \"%s\"\n"
-
-#~ msgid "lpr: error - unable to access \"%s\" - %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן לגשת ל \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן ליצור קובץ זמני \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unable to print file: %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן להדפיס קובץ: %s\n"
-
-#~ msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
-#~ msgstr "lpr: שגיאה - לא ניתן לכתוב לקובץ הזמני \"%s\" - %s\n"
-
-#~ msgid "lpr: error - unknown option '%c'!\n"
-#~ msgstr "lpr: שגיאה - אופציה לא ידועה '%c'!\n"
-
-#~ msgid ""
-#~ "lpr: warning - '%c' format modifier not supported - output may not be "
-#~ "correct!\n"
-#~ msgstr "lpr: אזהרה - משנה מבנה '%c' לא נתמך - פלט עלול להיות לא תקין!\n"
-
-#~ msgid "lpr: warning - email notification is not currently supported!\n"
-#~ msgstr "lpr: אזהרה - הודעת דוא\"ל לא נתמכת כרגע!\n"
-
-#~ msgid "lprm: Job or printer not found!\n"
-#~ msgstr "lprm: עבודה או מדפסת לא נמצאו!\n"
-
-#~ msgid "lprm: Not authorized to lprm job(s)!\n"
-#~ msgstr "lprm: לא מורשה למחוק עבודה/ות!\n"
-
-#~ msgid "lprm: Unable to lprm job(s)!\n"
-#~ msgstr "lprm: לא יכול למחוק עבודה/ות!\n"
-
-#~ msgid "lprm: Unknown destination \"%s\"!\n"
-#~ msgstr "lprm: יעד לא ידוע \"%s\"!\n"
-
-#~ msgid "lprm: Unknown option '%c'!\n"
-#~ msgstr "lprm: אופציה לא ידועה '%c'!\n"
-
-#~ msgid "lprm: You don't own job ID %d!\n"
-#~ msgstr "lprm: אתה לא הבעלים של עבודה מספר %d!\n"
-
-#~ msgid "lpstat: Invalid destination name in list \"%s\"!\n"
-#~ msgstr "lpstat: שם יעד לא חוקי ברשימה \"%s\"!\n"
-
-#~ msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
-#~ msgstr "lpstat: צריך \"completed\" או \"not-completed\" אחרי -W!\n"
-
-#~ msgid ""
-#~ "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-#~ msgstr ""
-#~ "lpstat: ‫צריך \"completed\", \"not-completed\", או \"all\" אחרי -W!\n"
-
-#~ msgid "lpstat: The -b option requires a destination argument.\n"
-#~ msgstr "lpstat: האופציה -b דורשת ארגומנט יעד.\n"
-
-#~ msgid "lpstat: Unknown destination \"%s\"!\n"
-#~ msgstr "lpstat: יעד לא ידוע \"%s\"!\n"
-
-#~ msgid "lpstat: Unknown option '%c'!\n"
-#~ msgstr "lpstat: אופציה לא ידועה '%c'!\n"
-
-#~ msgid "lpstat: get-classes failed: %s\n"
-#~ msgstr "lpstat: get-classes נכשלה: %s\n"
-
-#~ msgid "lpstat: get-jobs failed: %s\n"
-#~ msgstr "lpstat: get-jobs נכשלה: %s\n"
-
-#~ msgid "lpstat: get-printers failed: %s\n"
-#~ msgstr "lpstat: get-printers נכשלה: %s\n"
diff --git a/locale/cups_it.po b/locale/cups_it.po
index b3734910c..f9b73ae96 100644
--- a/locale/cups_it.po
+++ b/locale/cups_it.po
@@ -615,7 +615,7 @@ msgstr "ERROR: impossibile biforcare pictwpstops: %s\n"
msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
msgstr "ERROR: impossibile ottenere il documento PPD per la stampante \"%s\": %s.\n"
msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr "ERROR: impossibile ottenere gli attributi (%s) della stampa %d!\n"
+msgstr "ERROR: impossibile ottenere gli attributi (%2$s) della stampa %1$d!\n"
msgid "ERROR: Unable to get printer status (%s)!\n"
msgstr "ERROR: impossibile ottenere lo stato della stampante (%s)!\n"
msgid "ERROR: Unable to locate printer '%s'!\n"
@@ -663,7 +663,7 @@ msgstr "ERROR: ordine documento sconosciuto \"%s\"\n"
msgid "ERROR: Unknown format character \"%c\"\n"
msgstr "ERROR: carattere formato sconosciuto\"%c\"\n"
msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "ERROR: opzione \"%c\" sconosciuta con valore \"%s\"!\n"
+msgstr "ERROR: opzione \"%s\" sconosciuta con valore \"%s\"!\n"
msgid "ERROR: Unknown print mode \"%s\"\n"
msgstr "ERROR: modalità di stampa \"%s\" sconosciuta!\n"
msgid "ERROR: Unknown version option value \"%s\"!\n"
@@ -1223,7 +1223,7 @@ msgstr "WARNING: questo documento non è conforme alle convenzioni Adobe sulla s
msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
msgstr "WARNING: scelta \"%s\" sconosciuta per l'opzione \"%s\"!\n"
msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr "WARNING: opzione '%c' sconosciuta!\n"
+msgstr "WARNING: opzione '%s' sconosciuta!\n"
msgid "WARNING: Unsupported baud rate %s!\n"
msgstr "WARNING: tasso baud %s non supportato!\n"
msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
@@ -1247,7 +1247,7 @@ msgstr "esecuzione di cups-driverd fallita."
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
msgstr "cupsaddsmb: nessun documento PPD per la stampante \"%s\" - %s\n"
msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cupsctl: opzione '%c' sconosciuta!\n"
+msgstr "cupsctl: opzione '%s' sconosciuta!\n"
msgid "cupsctl: Unknown option \"-%c\"!\n"
msgstr "cupsctl: opzione '%c' sconosciuta!\n"
msgid "cupsd: Expected config filename after \"-c\" option!\n"
@@ -1379,7 +1379,7 @@ msgstr "lpoptions: nessuna stampante!?!\n"
msgid "lpoptions: Unable to add printer or instance: %s\n"
msgstr "lpoptions: impossibile aggiungere una stampante o un'istanza: %s\n"
msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: impossibile aprire il file PPD per %s!\n"
+msgstr "lpoptions: impossibile aprire il file PPD per %s: %s\n"
msgid "lpoptions: Unable to open PPD file for %s!\n"
msgstr "lpoptions: impossibile aprire il documento PPD per %s!\n"
msgid "lpoptions: Unknown printer or class!\n"
diff --git a/locale/cups_ja.po b/locale/cups_ja.po
index 38d040d9a..493332773 100644
--- a/locale/cups_ja.po
+++ b/locale/cups_ja.po
@@ -385,10 +385,10 @@ msgstr " %s cupsFilter ファイル \"%s\" が見つかりません!\n"
msgid " %s Missing cupsPreFilter file \"%s\"\n"
msgstr " %s cupsPreFilter ファイル \"%s\" が見つかりません!\n"
-#, fuzzy, c-format
+#, c-format
msgid " %s Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
msgstr ""
-" %s オプション *UIConstraint 内の %s %s \"*%s %s *%s %s\" が見つかりませ"
+" %s オプション *UIConstraint 内の %s \"*%s %s *%s %s\" が見つかりませ"
"ん!\n"
#, c-format
@@ -504,9 +504,9 @@ msgid " **FAIL** Bad LanguageVersion %s - must be English!\n"
msgstr ""
" **失敗** 無効な LanguageVersion %s - English でなければなりません!\n"
-#, fuzzy, c-format
+#, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s\n"
-msgstr " **失敗** デフォルトのオプションコードが解釈できません:s\n"
+msgstr " **失敗** デフォルトのオプションコードが解釈できません:s: %s\n"
#, c-format
msgid ""
@@ -733,12 +733,12 @@ msgstr ""
" %%BoundingBox: コメントが見つからないか不正です!\n"
" REF:39 ページ、%%BoundingBox:\n"
-#, fuzzy, c-format
+#, c-format
msgid ""
" Missing or bad %%Page: comments!\n"
" REF: Page 53, %%Page:\n"
msgstr ""
-" %Page: コメントが見つからないか不正です!\n"
+" %%Page: コメントが見つからないか不正です!\n"
" REF:53 ページ、%%Page:\n"
#, c-format
@@ -1525,9 +1525,9 @@ msgstr "ERROR: pictwpstops を待つことができません: %s\n"
msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
msgstr "ERROR: %d バイトを \"%s\" に書き込めません:%s\n"
-#, fuzzy, c-format
+#, c-format
msgid "ERROR: Unable to write print data: %s\n"
-msgstr "ERROR: プリントデータ %s を書き込めません:%s\n"
+msgstr "ERROR: プリントデータ %s を書き込めません:\n"
msgid "ERROR: Unable to write raster data to driver!\n"
msgstr "ERROR: ラスターデータをドライバに書き込めません!\n"
diff --git a/locale/cups_ko.po b/locale/cups_ko.po
index 13e57b28e..6edc903a1 100644
--- a/locale/cups_ko.po
+++ b/locale/cups_ko.po
@@ -783,7 +783,7 @@ msgid ""
" **FAIL** Unable to open PPD file - %s on line %d.\n"
msgstr ""
" 실패\n"
-" **실패** PPD 파일을 열 수 없습니다 - %d번째 줄에 있는 %s\n"
+" **실패** PPD 파일을 열 수 없습니다 - %2$d번째 줄에 있는 %1$s\n"
msgid " PASS\n"
msgstr " 통과\n"
@@ -1512,7 +1512,7 @@ msgstr "ERROR: pictwpstops를 기다릴 수 없음: %s\n"
#, c-format
msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr "ERROR: \"%s\"에 %d바이트를 쓸 수 없음: %s\n"
+msgstr "ERROR: \"%2$s\"에 %1$d바이트를 쓸 수 없음: %s\n"
#, c-format
msgid "ERROR: Unable to write print data: %s\n"
@@ -1559,7 +1559,7 @@ msgstr "ERROR: 감마=1000을 사용하는, 지원되지 않는 %s 감마 값!\n
#, c-format
msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: number-up=1을 사용하는, 지원되지 않는 %s 초과 값!\n"
+msgstr "ERROR: number-up=1을 사용하는, 지원되지 않는 %d 초과 값!\n"
#, c-format
msgid ""
@@ -1661,11 +1661,11 @@ msgstr "도움말"
#, c-format
msgid "INFO: Attempting to connect to host %s for printer %s\n"
-msgstr "INFO: %s 프린터의 %s 호스트에 연결을 시도하는 중\n"
+msgstr "INFO: %2$s 프린터의 %1$s 호스트에 연결을 시도하는 중\n"
#, c-format
msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "INFO: %d번 포트에 있는 %s 호스트에 연결을 시도하는 중\n"
+msgstr "INFO: %2$d번 포트에 있는 %1$s 호스트에 연결을 시도하는 중\n"
msgid "INFO: Canceling print job...\n"
msgstr "INFO: 프린트 작업 취소 중...\n"
@@ -1676,7 +1676,7 @@ msgstr "INFO: %s에 연결됨...\n"
#, c-format
msgid "INFO: Connecting to %s on port %d...\n"
-msgstr "INFO: %d번 포트에 있는 %s에 연결 중...\n"
+msgstr "INFO: %2$d번 포트에 있는 %1$s에 연결 중...\n"
msgid "INFO: Control file sent successfully\n"
msgstr "INFO: 제어 파일을 성공적으로 보냄\n"
@@ -1739,7 +1739,7 @@ msgstr "INFO: 제어 파일 보내는 중(%lu바이트)\n"
#, c-format
msgid "INFO: Sending control file (%u bytes)\n"
-msgstr "INFO: 제어 파일 보내는 중(%lu바이트)\n"
+msgstr "INFO: 제어 파일 보내는 중(%u바이트)\n"
msgid "INFO: Sending data\n"
msgstr "INFO: 데이터 보내는 중\n"
@@ -1845,7 +1845,7 @@ msgstr "작업 #%d이(가) 유지되지 않음!"
#, c-format
msgid "Job #%s does not exist!"
-msgstr "작업 #%d이(가) 존재하지 않음!"
+msgstr "작업 #%s이(가) 존재하지 않음!"
#, c-format
msgid "Job %d not found!"
diff --git a/locale/cups_no.po b/locale/cups_no.po
index c77c496a6..8c7de9377 100644
--- a/locale/cups_no.po
+++ b/locale/cups_no.po
@@ -675,7 +675,7 @@ msgstr "ERROR: Lysstyrkeverdien %s støttes ikke, bruker brightness=100!\n"
msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
msgstr "ERROR: Gammaverdien %s støttes ikke, bruker gamma=1000!\n"
msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: Number-up-verdien %s støttes ikke, bruker number-up=1!\n"
+msgstr "ERROR: Number-up-verdien %d støttes ikke, bruker number-up=1!\n"
msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
msgstr "ERROR: Number-up-layout-verdien %s støttes ikke, bruker number-up-layout=lrtb!\n"
msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
diff --git a/locale/cups_pl.po b/locale/cups_pl.po
index 6858c7696..0c9abd7a2 100644
--- a/locale/cups_pl.po
+++ b/locale/cups_pl.po
@@ -125,7 +125,7 @@ msgstr " OSTRZEŻENIE \"%s %s\" jest w konflikcie z \"%s %s\"\n
msgid " WARN %s has no corresponding options!\n"
msgstr " OSTRZEŻENIE %s nie posiada odpowiadających opcji!\n"
msgid " WARN %s shares a common prefix with %s\n REF: Page 15, section 3.2.\n"
-msgstr " OSTRZEŻENIE %s współdzieli wspólny przedrostek z %s %s\n REF: strona 15, sekcja 3.2.\n"
+msgstr " OSTRZEŻENIE %s współdzieli wspólny przedrostek z %s\n REF: strona 15, sekcja 3.2.\n"
msgid " WARN Default choices conflicting!\n"
msgstr " OSTRZEŻENIE Konflikt domyślnych wyborów!\n"
msgid " WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n REF: Page 122, section 5.17\n"
@@ -333,7 +333,7 @@ msgstr "%s: nie wiem co robić!\n"
msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s\"!\n"
msgid "%s: Error - bad job ID!\n"
-msgstr "%: błąd - błędny ID zlecenia!\n"
+msgstr "%s: błąd - błędny ID zlecenia!\n"
msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
msgstr "%s: błąd - nie można jednocześnie drukować plików i zmieniać zlecenia!\n"
msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
@@ -343,13 +343,13 @@ msgstr "%s: błąd - oczekiwany zestaw znaków po opcji \"-S\"!\n"
msgid "%s: Error - expected content type after '-T' option!\n"
msgstr "%s: błąd - oczekiwany typ zawartości po opcji \"-T\"!\n"
msgid "%s: Error - expected copies after '-n' option!\n"
-msgstr "%: błąd - oczekiwane kopie po opcji \"-n\"!\n"
+msgstr "%s: błąd - oczekiwane kopie po opcji \"-n\"!\n"
msgid "%s: Error - expected copy count after '-#' option!\n"
msgstr "%s: błąd - oczekiwany licznik kopii po opcji \"-#\"!\n"
msgid "%s: Error - expected destination after '-P' option!\n"
msgstr "%s: błąd - oczekiwany cel po opcji \"-P\"!\n"
msgid "%s: Error - expected destination after '-b' option!\n"
-msgstr "%: błąd - oczekiwany cel po opcji \"-b\"!\n"
+msgstr "%s: błąd - oczekiwany cel po opcji \"-b\"!\n"
msgid "%s: Error - expected destination after '-d' option!\n"
msgstr "%s: błąd - oczekiwany cel po opcji \"-d\"!\n"
msgid "%s: Error - expected form after '-f' option!\n"
@@ -367,7 +367,7 @@ msgstr "%s: błąd - oczekiwana nazwa po opcji \"-%c\"!\n"
msgid "%s: Error - expected option string after '-o' option!\n"
msgstr "%s: błąd - oczekiwany łańcuch tekstowy opcji po opcji \"-o\"!\n"
msgid "%s: Error - expected page list after '-P' option!\n"
-msgstr "%: błąd - oczekiwana lista stron po opcji \"-P\"!\n"
+msgstr "%s: błąd - oczekiwana lista stron po opcji \"-P\"!\n"
msgid "%s: Error - expected priority after '-%c' option!\n"
msgstr "%s: błąd - oczekiwany priorytet po opcji \"-%c\"!\n"
msgid "%s: Error - expected reason text after '-r' option!\n"
@@ -421,7 +421,7 @@ msgstr "%s: nie można połączyć się z serwerem: %s\n"
msgid "%s: Unable to contact server!\n"
msgstr "%s: nie można skontaktować się z serwerem!\n"
msgid "%s: Unknown destination \"%s\"!\n"
-msgstr "%: nieznany cel \"%s\"!\n"
+msgstr "%s: nieznany cel \"%s\"!\n"
msgid "%s: Unknown option '%c'!\n"
msgstr "%s: nieznana opcja \"%c\"!\n"
msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
@@ -461,7 +461,7 @@ msgstr "Dodaj subskrypcję RSS"
msgid "Administration"
msgstr "Administracja"
msgid "Attempt to set %s printer-state to bad value %d!"
-msgstr "Próba ustawienia błędnej wartości %d printer-state %s!"
+msgstr "Próba ustawienia błędnej wartości %2$d printer-state %1$s!"
msgid "Attribute groups are out of order (%x < %x)!"
msgstr "Grupy właściwości są nieuporządkowane (%x < %x)!"
msgid "Bad OpenGroup"
@@ -959,9 +959,9 @@ msgstr "Odbiornik jest niemal pełny."
msgid "Output bin full!"
msgstr "Odbiornik jest pełny!"
msgid "Output for printer %s is sent to %s\n"
-msgstr "Wyjście dla drukarki % zostało wysłane do %s\n"
+msgstr "Wyjście dla drukarki %s zostało wysłane do %s\n"
msgid "Output for printer %s is sent to remote printer %s on %s\n"
-msgstr "Wyjście dla drukarki % zostało wysłane do zdalnej drukarki %s na %s\n"
+msgstr "Wyjście dla drukarki %s zostało wysłane do zdalnej drukarki %s na %s\n"
msgid "Output for printer %s/%s is sent to %s\n"
msgstr "Wyjście dla drukarki %s/%s zostało wysłane do %s\n"
msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
@@ -1381,7 +1381,7 @@ msgstr "lpoptions: brak drukarek?!?\n"
msgid "lpoptions: Unable to add printer or instance: %s\n"
msgstr "lpoptions: nie można dodać drukarki lub przykładu: %s\n"
msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr "lpoptions: nie można otworzyć pliku PPD dla %s!\n"
+msgstr "lpoptions: nie można otworzyć pliku PPD dla %s: %s\n"
msgid "lpoptions: Unable to open PPD file for %s!\n"
msgstr "lpoptions: nie można otworzyć pliku PPD dla %s!\n"
msgid "lpoptions: Unknown printer or class!\n"
diff --git a/locale/cups_pt.po b/locale/cups_pt.po
index aceef7344..00ad3bac7 100644
--- a/locale/cups_pt.po
+++ b/locale/cups_pt.po
@@ -1,2882 +1,1464 @@
-#
-# "$Id$"
-#
-# Message catalog template for the Common UNIX Printing System (CUPS).
-#
-# Copyright 2007 by Apple Inc.
-# Copyright 2005-2007 by Easy Software Products.
-#
-# These coded instructions, statements, and computer programs are the
-# property of Apple Inc. and are protected by Federal copyright
-# law. Distribution and use rights are outlined in the file "LICENSE.txt"
-# which should have been included with this file. If this file is
-# file is missing or damaged, see the license at "http://www.cups.org/".
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: CUPS 1.3\n"
-"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2007-07-27 14:55-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
msgid "\t\t(all)\n"
-msgstr ""
-
+msgstr "\t\t(tudo)\n"
msgid "\t\t(none)\n"
-msgstr ""
-
-#, c-format
+msgstr "\t\t(sem)\n"
msgid "\t%d entries\n"
-msgstr ""
-
+msgstr "\t%d entradas\n"
msgid "\tAfter fault: continue\n"
-msgstr ""
-
+msgstr "\tApós falha: continuar\n"
msgid "\tAlerts:"
-msgstr ""
-
+msgstr "\tAlertas:"
msgid "\tBanner required\n"
-msgstr ""
-
+msgstr "\tFaixa publicitária requerida\n"
msgid "\tCharset sets:\n"
-msgstr ""
-
+msgstr "\tConjuntos charset:\n"
msgid "\tConnection: direct\n"
-msgstr ""
-
+msgstr "\tLigação: directa\n"
msgid "\tConnection: remote\n"
-msgstr ""
-
+msgstr "\tLigação: remota\n"
msgid "\tDefault page size:\n"
-msgstr ""
-
+msgstr "\tTamanho de página predefinido:\n"
msgid "\tDefault pitch:\n"
-msgstr ""
-
+msgstr "\tPitch predefinido:\n"
msgid "\tDefault port settings:\n"
-msgstr ""
-
-#, c-format
+msgstr "\tPredefinições de porta:\n"
msgid "\tDescription: %s\n"
-msgstr ""
-
-msgid ""
-"\tForm mounted:\n"
-"\tContent types: any\n"
-"\tPrinter types: unknown\n"
-msgstr ""
-
+msgstr "\tDescrição: %s\n"
+msgid "\tForm mounted:\n\tContent types: any\n\tPrinter types: unknown\n"
+msgstr "\tFormato montado:\n\tTipos de conteúdo: qualquer\n\tTipos de impressora: desconhecido\n"
msgid "\tForms allowed:\n"
-msgstr ""
-
-#, c-format
+msgstr "\tFormatos permitidos:\n"
msgid "\tInterface: %s.ppd\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s.ppd\n"
msgid "\tInterface: %s/interfaces/%s\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s/interfaces/%s\n"
msgid "\tInterface: %s/ppd/%s.ppd\n"
-msgstr ""
-
-#, c-format
+msgstr "\tInterface: %s/ppd/%s.ppd\n"
msgid "\tLocation: %s\n"
-msgstr ""
-
+msgstr "\tLocalização: %s\n"
msgid "\tOn fault: no alert\n"
-msgstr ""
-
+msgstr "\tEm falha: sem alerta\n"
msgid "\tUsers allowed:\n"
-msgstr ""
-
+msgstr "\tUtilizadores permitidos:\n"
msgid "\tUsers denied:\n"
-msgstr ""
-
+msgstr "\tUtilizadores negados:\n"
msgid "\tdaemon present\n"
-msgstr ""
-
+msgstr "\tdaemon presente\n"
msgid "\tno entries\n"
-msgstr ""
-
-#, c-format
+msgstr "\tsem entradas\n"
msgid "\tprinter is on device '%s' speed -1\n"
-msgstr ""
-
+msgstr "\timpressora está no periférico '%s' velocidade -1\n"
msgid "\tprinting is disabled\n"
-msgstr ""
-
+msgstr "\timpressão desactivada\n"
msgid "\tprinting is enabled\n"
-msgstr ""
-
-#, c-format
+msgstr "\timpressão activada\n"
msgid "\tqueued for %s\n"
-msgstr ""
-
+msgstr "\tem fila para %s\n"
msgid "\tqueuing is disabled\n"
-msgstr ""
-
+msgstr "\tcolocação em fila desactivada\n"
msgid "\tqueuing is enabled\n"
-msgstr ""
-
+msgstr "\tcolocação em fila activada\n"
msgid "\treason unknown\n"
-msgstr ""
-
-msgid ""
-"\n"
-" DETAILED CONFORMANCE TEST RESULTS\n"
-msgstr ""
-
+msgstr "\tmotivo desconhecido\n"
+msgid "\n DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr "\n RESULTADOS DETALHADOS DO TESTE DE CONFORMIDADE\n"
msgid " REF: Page 15, section 3.1.\n"
-msgstr ""
-
+msgstr " REF: Página 15, secção 3.1.\n"
msgid " REF: Page 15, section 3.2.\n"
-msgstr ""
-
+msgstr " REF: Página 15, secção 3.2.\n"
msgid " REF: Page 19, section 3.3.\n"
-msgstr ""
-
+msgstr " REF: Página 19, secção 3.3.\n"
msgid " REF: Page 20, section 3.4.\n"
-msgstr ""
-
+msgstr " REF: Página 20, secção 3.4.\n"
msgid " REF: Page 27, section 3.5.\n"
-msgstr ""
-
+msgstr " REF: Página 27, secção 3.5.\n"
msgid " REF: Page 42, section 5.2.\n"
-msgstr ""
-
+msgstr " REF: Página 42, secção 5.2.\n"
msgid " REF: Pages 16-17, section 3.2.\n"
-msgstr ""
-
+msgstr " REF: Páginas 16-17, secção 3.2.\n"
msgid " REF: Pages 42-45, section 5.2.\n"
-msgstr ""
-
+msgstr " REF: Páginas 42-45, secção 5.2.\n"
msgid " REF: Pages 45-46, section 5.2.\n"
-msgstr ""
-
+msgstr " REF: Páginas 45-46, secção 5.2.\n"
msgid " REF: Pages 48-49, section 5.2.\n"
-msgstr ""
-
+msgstr " REF: Páginas 48-49, secção 5.2.\n"
msgid " REF: Pages 52-54, section 5.2.\n"
-msgstr ""
-
-#, c-format
+msgstr " REF: Páginas 52-54, secção 5.2.\n"
msgid " %-39.39s %.0f bytes\n"
-msgstr ""
-
-#, c-format
+msgstr " %-39.39s %.0f bytes\n"
msgid " PASS Default%s\n"
-msgstr ""
-
+msgstr " PASS Predefinição%s\n"
msgid " PASS DefaultImageableArea\n"
-msgstr ""
-
+msgstr " PASS DefaultImageableArea\n"
msgid " PASS DefaultPaperDimension\n"
-msgstr ""
-
+msgstr " PASS DefaultPaperDimension\n"
msgid " PASS FileVersion\n"
-msgstr ""
-
+msgstr " PASS FileVersion\n"
msgid " PASS FormatVersion\n"
-msgstr ""
-
+msgstr " PASS FormatVersion\n"
msgid " PASS LanguageEncoding\n"
-msgstr ""
-
+msgstr " PASS LanguageEncoding\n"
msgid " PASS LanguageVersion\n"
-msgstr ""
-
+msgstr " PASS LanguageVersion\n"
msgid " PASS Manufacturer\n"
-msgstr ""
-
+msgstr " PASS Fabricante\n"
msgid " PASS ModelName\n"
-msgstr ""
-
+msgstr " PASS ModelName\n"
msgid " PASS NickName\n"
-msgstr ""
-
+msgstr " PASS NickName\n"
msgid " PASS PCFileName\n"
-msgstr ""
-
+msgstr " PASS PCFileName\n"
msgid " PASS PSVersion\n"
-msgstr ""
-
+msgstr " PASS PSVersion\n"
msgid " PASS PageRegion\n"
-msgstr ""
-
+msgstr " PASS PageRegion\n"
msgid " PASS PageSize\n"
-msgstr ""
-
+msgstr " PASS PageSize\n"
msgid " PASS Product\n"
-msgstr ""
-
+msgstr " PASS Produto\n"
msgid " PASS ShortNickName\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" WARN \"%s %s\" conflicts with \"%s %s\"\n"
-" (constraint=\"%s %s %s %s\")\n"
-msgstr ""
-
-#, c-format
+msgstr " PASS ShortNickName\n"
+msgid " WARN \"%s %s\" conflicts with \"%s %s\"\n (constraint=\"%s %s %s %s\")\n"
+msgstr " WARN \"%s %s\" em conflito com \"%s %s\"\n (restrição=\"%s %s %s %s\")\n"
msgid " WARN %s has no corresponding options!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" WARN %s shares a common prefix with %s\n"
-" REF: Page 15, section 3.2.\n"
-msgstr ""
-
+msgstr " WARN %s não tem opções correspondentes!\n"
+msgid " WARN %s shares a common prefix with %s\n REF: Page 15, section 3.2.\n"
+msgstr " WARN %s partilha um prefixo comum com %s\n REF: Página 15, secção 3.2.\n"
msgid " WARN Default choices conflicting!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" WARN Duplex option keyword %s should be named Duplex or "
-"JCLDuplex!\n"
-" REF: Page 122, section 5.17\n"
-msgstr ""
-
-msgid ""
-" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
-msgstr ""
-
-msgid ""
-" WARN LanguageEncoding required by PPD 4.3 spec.\n"
-" REF: Pages 56-57, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr " WARN Escolhas predefinidas em conflito!\n"
+msgid " WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n REF: Page 122, section 5.17\n"
+msgstr " WARN Palavra-chave de opção de frente e verso %s deve ter o nome Duplex ou JCLDuplex!\n REF: Página 122, secção 5.17\n"
+msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr " WARN Ficheiro contém um misto de fins de linha CR, LF e CR LF!\n"
+msgid " WARN LanguageEncoding required by PPD 4.3 spec.\n REF: Pages 56-57, section 5.3.\n"
+msgstr " WARN LanguageEncoding requerido por espec. de PPD 4.3\n REF: Páginas 56-57, secção 5.3.\n"
msgid " WARN Line %d only contains whitespace!\n"
-msgstr ""
-
-msgid ""
-" WARN Manufacturer required by PPD 4.3 spec.\n"
-" REF: Pages 58-59, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr " WARN Linha %d só contém espaço em branco!\n"
+msgid " WARN Manufacturer required by PPD 4.3 spec.\n REF: Pages 58-59, section 5.3.\n"
+msgstr " WARN Fabricante requerido por espec. de PPD 4.3\n REF: Páginas 58-59, secção 5.3.\n"
msgid " WARN Missing APDialogExtension file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr " WARN Ficheiro APDialogExtension inexistente \"%s\"\n"
msgid " WARN Missing APPrinterIconPath file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr " WARN Ficheiro APPrinterIconPath inexistente \"%s\"\n"
msgid " WARN Missing cupsICCProfile file \"%s\"\n"
-msgstr ""
-
-msgid ""
-" WARN Non-Windows PPD files should use lines ending with only LF, "
-"not CR LF!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" WARN Obsolete PPD version %.1f!\n"
-" REF: Page 42, section 5.2.\n"
-msgstr ""
-
-msgid ""
-" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
-" REF: Pages 61-62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" WARN Protocols contains PJL but JCL attributes are not set.\n"
-" REF: Pages 78-79, section 5.7.\n"
-msgstr ""
-
-msgid ""
-" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
-" REF: Pages 78-79, section 5.7.\n"
-msgstr ""
-
-msgid ""
-" WARN ShortNickName required by PPD 4.3 spec.\n"
-" REF: Pages 64-65, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr " WARN Ficheiro cupsICCProfile inexistente \"%s\"\n"
+msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+msgstr " WARN Ficheiros PPD não Windows devem utilizar fins de linha com LF, e não CR LF!\n"
+msgid " WARN Obsolete PPD version %.1f!\n REF: Page 42, section 5.2.\n"
+msgstr " WARN Versão de PPD obsoleta %.1f!\n REF: Página 42, secção 5.2"
+msgid " WARN PCFileName longer than 8.3 in violation of PPD spec.\n REF: Pages 61-62, section 5.3.\n"
+msgstr " WARN PCFileName superior a 8.3 viola espec. de PPD\n REF: Páginas 61-62, secção 5.3.\n"
+msgid " WARN Protocols contains PJL but JCL attributes are not set.\n REF: Pages 78-79, section 5.7.\n"
+msgstr " WARN Protocolos contêm PJL, mas atributos JCL não estão especificados.\n REF: Páginas 78-79, secção 5.7.\n"
+msgid " WARN Protocols contains both PJL and BCP; expected TBCP.\n REF: Pages 78-79, section 5.7.\n"
+msgstr " WARN Protocolos contêm PJL e BCP; TBCP esperados.\n REF: Páginas 78-79, secção 5.7.\n"
+msgid " WARN ShortNickName required by PPD 4.3 spec.\n REF: Pages 64-65, section 5.3.\n"
+msgstr " WARN ShortNickName requerido por espec. de PPD 4.3\n REF: Páginas 64-65, secção 5.3.\n"
msgid " %s %s %s does not exist!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s %s %s não existe!\n"
msgid " %s Bad UTF-8 \"%s\" translation string for option %s!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" %s Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Cadeia de tradução UTF-8 \"%s\" inválida para opção %s!\n"
+msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s!\n"
+msgstr " %s Cadeia de tradução UTF-8 \"%s\" inválida para opção %s, escolha %s!\n"
msgid " %s Bad cupsFilter value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Valor cupsFilter inválido \"%s\"!\n"
msgid " %s Bad cupsPreFilter value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Valor cupsPreFilter inválido \"%s\"!\n"
msgid " %s Bad language \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Idioma inválido \"%s\"!\n"
msgid " %s Missing \"%s\" translation string for option %s!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Cadeia de tradução inexistente \"%s\" para opção %s!\n"
msgid " %s Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Cadeia de tradução inexistente \"%s\" para opção %s, escolha %s!\n"
msgid " %s Missing choice *%s %s in UIConstraint \"*%s %s *%s %s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Escolha inexistente *%s %s em UIConstraint \"*%s %s *%s %s\"!\n"
msgid " %s Missing cupsFilter file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Ficheiro cupsFilter inexistente \"%s\"!\n"
msgid " %s Missing cupsPreFilter file \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Ficheiro cupsPreFilter inexistente \"%s\"!\n"
msgid " %s Missing option %s in UIConstraint \"*%s %s *%s %s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Opção inexistente %s em UIConstraint \"*%s %s *%s %s\"!\n"
msgid " %s No base translation \"%s\" is included in file!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** %s must be 1284DeviceID!\n"
-" REF: Page 72, section 5.5\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** BAD Default%s %s\n"
-" REF: Page 40, section 4.5.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** BAD DefaultImageableArea %s!\n"
-" REF: Page 102, section 5.15.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** BAD DefaultPaperDimension %s!\n"
-" REF: Page 103, section 5.15.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** BAD JobPatchFile attribute in file\n"
-" REF: Page 24, section 3.4.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** BAD Manufacturer (should be \"HP\")\n"
-" REF: Page 211, table D.1.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** BAD Manufacturer (should be \"Oki\")\n"
-" REF: Page 211, table D.1.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
-" REF: Pages 59-60, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** BAD PSVersion - not \"(string) int\".\n"
-" REF: Pages 62-64, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** BAD Product - not \"(string)\".\n"
-" REF: Page 62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
-" REF: Pages 64-65, section 5.3.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** Bad %s choice %s!\n"
-" REF: Page 122, section 5.17\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** Bad %s choice %s!\n"
-" REF: Page 84, section 5.9\n"
-msgstr ""
-
-#, c-format
+msgstr " %s Sem tradução base \"%s\" incluída no ficheiro!\n"
+msgid " **FAIL** %s must be 1284DeviceID!\n REF: Page 72, section 5.5\n"
+msgstr " **FAIL** %s deve ser 1284DeviceID!\n REF: Página 72, secção 5.5\n"
+msgid " **FAIL** BAD Default%s %s\n REF: Page 40, section 4.5.\n"
+msgstr " **FAIL** Predefinição%s %s inválida\n REF: Página 40, secção 4.5\n"
+msgid " **FAIL** BAD DefaultImageableArea %s!\n REF: Page 102, section 5.15.\n"
+msgstr " **FAIL** DefaultImageableArea %s inválida!\n REF: Página 102, secção 5.15\n"
+msgid " **FAIL** BAD DefaultPaperDimension %s!\n REF: Page 103, section 5.15.\n"
+msgstr " **FAIL** DefaultPaperDimension %s inválida!\n REF: Página 103, secção 5.15\n"
+msgid " **FAIL** BAD JobPatchFile attribute in file\n REF: Page 24, section 3.4.\n"
+msgstr " **FAIL** Atributo JobPatchFile inválido no ficheiro!\n REF: Página 24, secção 3.4\n"
+msgid " **FAIL** BAD Manufacturer (should be \"HP\")\n REF: Page 211, table D.1.\n"
+msgstr " **FAIL** Fabricante inválido (deve ser \"HP\")\n REF: Página 211, tabela D.1.\n"
+msgid " **FAIL** BAD Manufacturer (should be \"Oki\")\n REF: Page 211, table D.1.\n"
+msgstr " **FAIL** Fabricante inválido (deve ser \"Oki\")\n REF: Página 211, tabela D.1.\n"
+msgid " **FAIL** BAD ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3.\n"
+msgstr " **FAIL** ModelName inválido - \"%c\" não permitido na cadeia.\n REF: Páginas 59-60, secção 5.3\n"
+msgid " **FAIL** BAD PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3.\n"
+msgstr " **FAIL** PSVersion inválida - não \"(cadeia) int\".\n REF: Páginas 62-64, secção 5.3\n"
+msgid " **FAIL** BAD Product - not \"(string)\".\n REF: Page 62, section 5.3.\n"
+msgstr " **FAIL** Produto inválido - não \"(cadeia)\".\n REF: Página 62, secção 5.3\n"
+msgid " **FAIL** BAD ShortNickName - longer than 31 chars.\n REF: Pages 64-65, section 5.3.\n"
+msgstr " **FAIL** ShortNickName inválido - superior a 31 car.\n REF: Páginas 64-65, secção 5.3\n"
+msgid " **FAIL** Bad %s choice %s!\n REF: Page 122, section 5.17\n"
+msgstr " **FAIL** Escolha %s inválida %s!\n REF: Página 122, secção 5.17\n"
+msgid " **FAIL** Bad %s choice %s!\n REF: Page 84, section 5.9\n"
+msgstr " **FAIL** Escolha %s inválida %s!\n REF: Página 84, secção 5.9\n"
msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1!\n"
-msgstr ""
-
-#, c-format
+msgstr " **FAIL** LanguageEncoding %s inválida - deve ser ISOLatin1!\n"
msgid " **FAIL** Bad LanguageVersion %s - must be English!\n"
-msgstr ""
-
-#, c-format
+msgstr " **FAIL** LanguageVersion %s inválida - deve ser Inglês!\n"
msgid " **FAIL** Default option code cannot be interpreted: %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** Default translation string for option %s choice %s contains "
-"8-bit characters!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** Default translation string for option %s contains 8-bit "
-"characters!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** REQUIRED %s does not define choice None!\n"
-" REF: Page 122, section 5.17\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** REQUIRED Default%s\n"
-" REF: Page 40, section 4.5.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED DefaultImageableArea\n"
-" REF: Page 102, section 5.15.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED DefaultPaperDimension\n"
-" REF: Page 103, section 5.15.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED FileVersion\n"
-" REF: Page 56, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED FormatVersion\n"
-" REF: Page 56, section 5.3.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
-" REF: Page 41, section 5.\n"
-" REF: Page 102, section 5.15.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED LanguageEncoding\n"
-" REF: Pages 56-57, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED LanguageVersion\n"
-" REF: Pages 57-58, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED Manufacturer\n"
-" REF: Pages 58-59, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED ModelName\n"
-" REF: Pages 59-60, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED NickName\n"
-" REF: Page 60, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED PCFileName\n"
-" REF: Pages 61-62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED PSVersion\n"
-" REF: Pages 62-64, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED PageRegion\n"
-" REF: Page 100, section 5.14.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED PageSize\n"
-" REF: Page 41, section 5.\n"
-" REF: Page 99, section 5.14.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED PageSize\n"
-" REF: Pages 99-100, section 5.14.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
-" REF: Page 41, section 5.\n"
-" REF: Page 103, section 5.15.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED Product\n"
-" REF: Page 62, section 5.3.\n"
-msgstr ""
-
-msgid ""
-" **FAIL** REQUIRED ShortNickName\n"
-" REF: Page 64-65, section 5.3.\n"
-msgstr ""
-
-#, c-format
+msgstr " **FAIL** Impossível interpretar código de opção predefinida: %s\n"
+msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
+msgstr " **FAIL** Cadeia de tradução predefinida para opção %s escolha %s contém caracteres de 8 bits!\n"
+msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
+msgstr " **FAIL** Cadeia de tradução predefinida para opção %s contém caracteres de 8 bits!\n"
+msgid " **FAIL** REQUIRED %s does not define choice None!\n REF: Page 122, section 5.17\n"
+msgstr " **FAIL** %s requerido não define escolha Sem!\n REF: Página 122, secção 5.17\n"
+msgid " **FAIL** REQUIRED Default%s\n REF: Page 40, section 4.5.\n"
+msgstr " **FAIL** Predefinição%s requerida\n REF: Página 40, secção 4.5\n"
+msgid " **FAIL** REQUIRED DefaultImageableArea\n REF: Page 102, section 5.15.\n"
+msgstr " **FAIL** DefaultImageableArea requerida\n REF: Página 102, secção 5.15\n"
+msgid " **FAIL** REQUIRED DefaultPaperDimension\n REF: Page 103, section 5.15.\n"
+msgstr " **FAIL** DefaultPaperDimension requerida\n REF: Página 103, secção 5.15\n"
+msgid " **FAIL** REQUIRED FileVersion\n REF: Page 56, section 5.3.\n"
+msgstr " **FAIL** FileVersion requerida\n REF: Página 56, secção 5.3\n"
+msgid " **FAIL** REQUIRED FormatVersion\n REF: Page 56, section 5.3.\n"
+msgstr " **FAIL** FormatVersion requerida\n REF: Página 56, secção 5.3\n"
+msgid " **FAIL** REQUIRED ImageableArea for PageSize %s\n REF: Page 41, section 5.\n REF: Page 102, section 5.15.\n"
+msgstr " **FAIL** ImageableArea requerida para PageSize %s\n REF: Página 41, secção 5.\n REF: Página 102, secção 5.15.\n"
+msgid " **FAIL** REQUIRED LanguageEncoding\n REF: Pages 56-57, section 5.3.\n"
+msgstr " **FAIL** LanguageEncoding requerida\n REF: Páginas 56-57, secção 5.3\n"
+msgid " **FAIL** REQUIRED LanguageVersion\n REF: Pages 57-58, section 5.3.\n"
+msgstr " **FAIL** LanguageVersion requerida\n REF: Páginas 57-58, secção 5.3\n"
+msgid " **FAIL** REQUIRED Manufacturer\n REF: Pages 58-59, section 5.3.\n"
+msgstr " **FAIL** Fabricante requerido\n REF: Páginas 58-59, secção 5.3\n"
+msgid " **FAIL** REQUIRED ModelName\n REF: Pages 59-60, section 5.3.\n"
+msgstr " **FAIL** ModelName requerido\n REF: Páginas 59-60, secção 5.3\n"
+msgid " **FAIL** REQUIRED NickName\n REF: Page 60, section 5.3.\n"
+msgstr " **FAIL** NickName requerido\n REF: Página 60, secção 5.3\n"
+msgid " **FAIL** REQUIRED PCFileName\n REF: Pages 61-62, section 5.3.\n"
+msgstr " **FAIL** PCFileName requerido\n REF: Páginas 61-62, secção 5.3\n"
+msgid " **FAIL** REQUIRED PSVersion\n REF: Pages 62-64, section 5.3.\n"
+msgstr " **FAIL** PSVersion requerida\n REF: Páginas 62-64, secção 5.3\n"
+msgid " **FAIL** REQUIRED PageRegion\n REF: Page 100, section 5.14.\n"
+msgstr " **FAIL** PageRegion requerida\n REF: Página 100, secção 5.14\n"
+msgid " **FAIL** REQUIRED PageSize\n REF: Page 41, section 5.\n REF: Page 99, section 5.14.\n"
+msgstr " **FAIL** PageSize requerido\n REF: Página 41, secção 5.\n REF: Página 99, secção 5.14.\n"
+msgid " **FAIL** REQUIRED PageSize\n REF: Pages 99-100, section 5.14.\n"
+msgstr " **FAIL** PageSize requerido\n REF: Páginas 99-100, secção 5.14\n"
+msgid " **FAIL** REQUIRED PaperDimension for PageSize %s\n REF: Page 41, section 5.\n REF: Page 103, section 5.15.\n"
+msgstr " **FAIL** PaperDimension requerida para PageSize %s\n REF: Página 41, secção 5.\n REF: Página 103, secção 5.15.\n"
+msgid " **FAIL** REQUIRED Product\n REF: Page 62, section 5.3.\n"
+msgstr " **FAIL** Produto requerido\n REF: Página 62, secção 5.3\n"
+msgid " **FAIL** REQUIRED ShortNickName\n REF: Page 64-65, section 5.3.\n"
+msgstr " **FAIL** ShortNickName requerido\n REF: Páginas 64-65, secção 5.3\n"
msgid " %d ERRORS FOUND\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Bad %%%%BoundingBox: on line %d!\n"
-" REF: Page 39, %%%%BoundingBox:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Bad %%%%Page: on line %d!\n"
-" REF: Page 53, %%%%Page:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Bad %%%%Pages: on line %d!\n"
-" REF: Page 43, %%%%Pages:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Line %d is longer than 255 characters (%d)!\n"
-" REF: Page 25, Line Length\n"
-msgstr ""
-
-msgid ""
-" Missing %!PS-Adobe-3.0 on first line!\n"
-" REF: Page 17, 3.1 Conforming Documents\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Missing %%EndComments comment!\n"
-" REF: Page 41, %%EndComments\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Missing or bad %%BoundingBox: comment!\n"
-" REF: Page 39, %%BoundingBox:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Missing or bad %%Page: comments!\n"
-" REF: Page 53, %%Page:\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" Missing or bad %%Pages: comment!\n"
-" REF: Page 43, %%Pages:\n"
-msgstr ""
-
+msgstr " %d ERROS ENCONTRADOS\n"
+msgid " Bad %%%%BoundingBox: on line %d!\n REF: Page 39, %%%%BoundingBox:\n"
+msgstr " %%%%BoundingBox: inválida na linha %d!\n REF: Página 39, %%%%BoundingBox:\n"
+msgid " Bad %%%%Page: on line %d!\n REF: Page 53, %%%%Page:\n"
+msgstr " %%%%Page: inválida na linha %d!\n REF: Página 53, %%%%Page:\n"
+msgid " Bad %%%%Pages: on line %d!\n REF: Page 43, %%%%Pages:\n"
+msgstr " %%%%Pages: inválidas na linha %d!\n REF: Página 43, %%%%Pages:\n"
+msgid " Line %d is longer than 255 characters (%d)!\n REF: Page 25, Line Length\n"
+msgstr " Linha %d tem mais de 255 caracteres (%d)!\n REF: Página 25, Comprimento da Linha\n"
+msgid " Missing %!PS-Adobe-3.0 on first line!\n REF: Page 17, 3.1 Conforming Documents\n"
+msgstr " %!PS-Adobe-3.0 inexistente na primeira linha!\n REF: Página 17, 3.1 Documentos de Conformidade\n"
+msgid " Missing %%EndComments comment!\n REF: Page 41, %%EndComments\n"
+msgstr " Comentário %%EndComments inexistente!\n REF: Página 41, %%EndComments\n"
+msgid " Missing or bad %%BoundingBox: comment!\n REF: Page 39, %%BoundingBox:\n"
+msgstr " Comentário %%BoundingBox: inexistente ou inválido!\n REF: Página 39, %%BoundingBox:\n"
+msgid " Missing or bad %%Page: comments!\n REF: Page 53, %%Page:\n"
+msgstr " Comentários %%Page: inexistentes ou inválidos!\n REF: Página 53, %%Page:\n"
+msgid " Missing or bad %%Pages: comment!\n REF: Page 43, %%Pages:\n"
+msgstr " Comentário %%Pages: inexistente ou inválido!\n REF: Página 43, %%Pages:\n"
msgid " NO ERRORS FOUND\n"
-msgstr ""
-
-#, c-format
+msgstr " SEM ERROS\n"
msgid " Saw %d lines that exceeded 255 characters!\n"
-msgstr ""
-
-#, c-format
+msgstr " Detectadas %d linhas que excedem 255 caracteres!\n"
msgid " Too many %%BeginDocument comments!\n"
-msgstr ""
-
-#, c-format
+msgstr " Demasiados comentários %%BeginDocument!\n"
msgid " Too many %%EndDocument comments!\n"
-msgstr ""
-
+msgstr " Demasiados comentários %%EndDocument!\n"
msgid " Warning: file contains binary data!\n"
-msgstr ""
-
-#, c-format
+msgstr " Aviso: ficheiro contém dados binários!\n"
msgid " Warning: no %%EndComments comment in file!\n"
-msgstr ""
-
-#, c-format
+msgstr " Aviso: sem comentário %%EndComments no ficheiro!\n"
msgid " Warning: obsolete DSC version %.1f in file!\n"
-msgstr ""
-
+msgstr " Aviso: versão obsoleta de DSC %.1f no ficheiro!\n"
msgid " FAIL\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" FAIL\n"
-" **FAIL** Unable to open PPD file - %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-" FAIL\n"
-" **FAIL** Unable to open PPD file - %s on line %d.\n"
-msgstr ""
-
+msgstr " FAIL\n"
+msgid " FAIL\n **FAIL** Unable to open PPD file - %s\n"
+msgstr " FAIL\n **FAIL** Impossível abrir ficheiro PPD - %s\n"
+msgid " FAIL\n **FAIL** Unable to open PPD file - %s on line %d.\n"
+msgstr " FAIL\n **FAIL** Impossível abrir ficheiro PPD - %s na linha %d.\n"
msgid " PASS\n"
-msgstr ""
-
-#, c-format
+msgstr " PASS\n"
msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
-msgstr ""
-
-#, c-format
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
-msgstr ""
-
-#, c-format
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
msgid "%s accepting requests since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s aceita pedidos desde %s\n"
msgid "%s cannot be changed."
-msgstr ""
-
-#, c-format
+msgstr "Impossível alterar %s."
msgid "%s is not implemented by the CUPS version of lpc.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s não é implementado pela versão CUPS de lpc.\n"
msgid "%s is not ready\n"
-msgstr ""
-
-#, c-format
+msgstr "%s não está preparada\n"
msgid "%s is ready\n"
-msgstr ""
-
-#, c-format
+msgstr "%s está preparada\n"
msgid "%s is ready and printing\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s not accepting requests since %s -\n"
-"\t%s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s está preparada e a imprimir\n"
+msgid "%s not accepting requests since %s -\n\t%s\n"
+msgstr "%s não aceita pedidos desde %s-\n\t%s\n"
msgid "%s not supported!"
-msgstr ""
-
-#, c-format
+msgstr "%s não suportado!"
msgid "%s/%s accepting requests since %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s/%s not accepting requests since %s -\n"
-"\t%s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s/%s aceita pedidos desde %s\n"
+msgid "%s/%s not accepting requests since %s -\n\t%s\n"
+msgstr "%s/%s não aceita pedidos desde %s-\n\t%s\n"
msgid "%s: %-33.33s [job %d localhost]\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: %-33.33s [trabalho %d localhost]\n"
msgid "%s: %s failed: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: %s falhou: %s\n"
msgid "%s: Don't know what to do!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Não sei que fazer!\n"
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erro - nomes de variáveis de ambiente %s inexistentes no destino \"%s\"!\n"
msgid "%s: Error - bad job ID!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - ID de trabalho inválido!\n"
msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível imprimir ficheiros e alterar trabalhos em simultâneo!\n"
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr "%s: Erro - impossível imprimir a partir de stdin se fornecidos ficheiros ou ID do trabalho!\n"
msgid "%s: Error - expected character set after '-S' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - conjunto de caracteres esperado após opção '-S'!\n"
msgid "%s: Error - expected content type after '-T' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - tipo de conteúdo esperado após opção '-T'!\n"
msgid "%s: Error - expected copies after '-n' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - cópias esperadas após opção '-n'!\n"
msgid "%s: Error - expected copy count after '-#' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - contagem de cópias esperadas após opção '-#'!\n"
msgid "%s: Error - expected destination after '-P' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-P'!\n"
msgid "%s: Error - expected destination after '-b' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-b'!\n"
msgid "%s: Error - expected destination after '-d' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino esperado após opção '-d'!\n"
msgid "%s: Error - expected form after '-f' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - formato esperado após opção '-f'!\n"
msgid "%s: Error - expected hold name after '-H' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome para reter esperado após opção '-H'!\n"
msgid "%s: Error - expected hostname after '-H' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de host esperado após opção '-H'!\n"
msgid "%s: Error - expected hostname after '-h' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de host esperado após opção '-h'!\n"
msgid "%s: Error - expected mode list after '-y' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - lista de modo esperada após opção '-y'!\n"
msgid "%s: Error - expected name after '-%c' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome esperado após opção '-%c'!\n"
msgid "%s: Error - expected option string after '-o' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - cadeia de opção esperada após opção '-o'!\n"
msgid "%s: Error - expected page list after '-P' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - lista de página esperada após opção '-P'!\n"
msgid "%s: Error - expected priority after '-%c' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - prioridade esperada após opção '-%c'!\n"
msgid "%s: Error - expected reason text after '-r' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - texto de motivo esperado após opção '-r'!\n"
msgid "%s: Error - expected title after '-t' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - título esperado após opção '-t'!\n"
msgid "%s: Error - expected username after '-U' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de utilizador esperado após opção '-U'!\n"
msgid "%s: Error - expected username after '-u' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - nome de utilizador esperado após opção '-u'!\n"
msgid "%s: Error - expected value after '-%c' option!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
-"option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - valor esperado após opção '-%c'!\n"
+msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
+msgstr "%s: Erro - necessário \"concluído\", \"não concluído\" ou \"tudo\" após opção '-W'!\n"
msgid "%s: Error - no default destination available.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - sem destino predefinido disponível.\n"
msgid "%s: Error - priority must be between 1 and 100.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - prioridade deve ser entre 1 e 100.\n"
msgid "%s: Error - scheduler not responding!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - programador não responde!\n"
msgid "%s: Error - stdin is empty, so no job has been sent.\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - stdin está vazio, por isso nenhum trabalho foi enviado.\n"
msgid "%s: Error - too many files - \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - demasiados ficheiros - \"%s\"\n"
msgid "%s: Error - unable to access \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível aceder a \"%s\" - %s\n"
msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível criar ficheiro temporário \"%s\" - %s\n"
msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - impossível escrever no ficheiro temporário \"%s\" - %s\n"
msgid "%s: Error - unknown destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino desconhecido \"%s\"!\n"
msgid "%s: Error - unknown destination \"%s/%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - destino desconhecido \"%s/%s\"!\n"
msgid "%s: Error - unknown option '%c'!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - opção desconhecida '%c'!\n"
msgid "%s: Expected job ID after '-i' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: ID de trabalho esperado após opção '-i'!\n"
msgid "%s: Invalid destination name in list \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Nome de destino inválido na lista \"%s\"!\n"
msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: No filter to convert from %s/%s to %s/%s!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Necessário ID do trabalho ('-i jobid') antes de '-H reiniciar'!\n"
msgid "%s: Operation failed: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Operação falhou: %s\n"
msgid "%s: Sorry, no encryption support compiled in!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Sem suporte de encriptação compilado!\n"
msgid "%s: Unable to connect to server\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Impossível ligar ao servidor\n"
msgid "%s: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Impossível ligar ao servidor: %s\n"
msgid "%s: Unable to contact server!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unable to determine MIME type of \"%s\"!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unable to read MIME database from \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Impossível contactar servidor!\n"
msgid "%s: Unknown destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unknown destination MIME type %s/%s!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Destino desconhecido \"%s\"!\n"
msgid "%s: Unknown option '%c'!\n"
-msgstr ""
-
-#, c-format
-msgid "%s: Unknown source MIME type %s/%s!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: Warning - '%c' format modifier not supported - output may not be "
-"correct!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Opção desconhecida '%c'!\n"
+msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "%s: Aviso - modificador de formato '%c' não suportado - saída pode ser incorrecta!\n"
msgid "%s: Warning - character set option ignored!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de conjunto de caracteres ignorada!\n"
msgid "%s: Warning - content type option ignored!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de tipo de conteúdo ignorada!\n"
msgid "%s: Warning - form option ignored!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de formato ignorada!\n"
msgid "%s: Warning - mode option ignored!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Aviso - opção de modo ignorada!\n"
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erro - nomes de variáveis de ambiente %s inexistentes no destino \"%s\"!\n"
msgid "%s: error - expected option=value after '-o' option!\n"
-msgstr ""
-
-#, c-format
+msgstr "%s: Erro - opção=valor esperada após opção '-o'!\n"
msgid "%s: error - no default destination available.\n"
-msgstr ""
-
+msgstr "%s: Erro - sem destino predefinido disponível.\n"
msgid "?Invalid help command unknown\n"
-msgstr ""
-
+msgstr "?Comando de ajuda inválido desconhecido\n"
msgid "A Samba password is required to export printer drivers!"
-msgstr ""
-
+msgstr "Palavra-passe Samba requerida para exportar recursos de impressora!"
msgid "A Samba username is required to export printer drivers!"
-msgstr ""
-
-#, c-format
+msgstr "Nome de utilizador Samba requerido para exportar recursos de impressora!"
msgid "A class named \"%s\" already exists!"
-msgstr ""
-
-#, c-format
+msgstr "Uma classe com o nome \"%s\" já existe!"
msgid "A printer named \"%s\" already exists!"
-msgstr ""
-
+msgstr "Uma impressora com o nome \"%s\" já existe!"
msgid "Accept Jobs"
-msgstr ""
-
+msgstr "Aceitar trabalhos"
msgid "Add Class"
-msgstr ""
-
+msgstr "Adicionar classe"
msgid "Add Printer"
-msgstr ""
-
+msgstr "Adicionar impressora"
msgid "Add RSS Subscription"
-msgstr ""
-
+msgstr "Adicionar subscrição RSS"
msgid "Administration"
-msgstr ""
-
-#, c-format
+msgstr "Administração"
msgid "Attempt to set %s printer-state to bad value %d!"
-msgstr ""
-
-#, c-format
+msgstr "Tentativa de especificar %s printer-state para valor inválido %d!"
msgid "Attribute groups are out of order (%x < %x)!"
-msgstr ""
-
+msgstr "Grupos de atributos desordenados (%x < %x)!"
msgid "Bad OpenGroup"
-msgstr ""
-
+msgstr "OpenGroup inválido"
msgid "Bad OpenUI/JCLOpenUI"
-msgstr ""
-
+msgstr "OpenUI/JCLOpenUI inválidos"
msgid "Bad OrderDependency"
-msgstr ""
-
+msgstr "OrderDependency inválida"
msgid "Bad UIConstraints"
-msgstr ""
-
-#, c-format
+msgstr "UIConstraints inválidas"
msgid "Bad copies value %d."
-msgstr ""
-
+msgstr "Valor de cópias inválido %d."
msgid "Bad custom parameter"
-msgstr ""
-
-#, c-format
+msgstr "Parâmetro personalizado inválido"
msgid "Bad device-uri \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Device-uri \"%s\" inválido!"
msgid "Bad document-format \"%s\"!"
-msgstr ""
-
+msgstr "Document-format \"%s\" inválido!"
msgid "Bad job-priority value!"
-msgstr ""
-
+msgstr "Valor job-priority inválido!"
msgid "Bad job-state value!"
-msgstr ""
-
-#, c-format
+msgstr "Valor job-state inválido!"
msgid "Bad job-uri attribute \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Atributo job-uri \"%s\" inválido!"
msgid "Bad notify-pull-method \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Notify-pull-method \"%s\" inválido!"
msgid "Bad notify-recipient-uri URI \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Notify-recipient-uri URI \"%s\" inválido!"
msgid "Bad number-up value %d."
-msgstr ""
-
-#, c-format
+msgstr "Valor number-up inválido %d."
msgid "Bad option + choice on line %d!"
-msgstr ""
-
-#, c-format
+msgstr "Opção + escolha inválidas na linha %d!"
msgid "Bad page-ranges values %d-%d."
-msgstr ""
-
-#, c-format
+msgstr "Valores page-ranges inválidos %d-%d."
msgid "Bad port-monitor \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Port-monitor \"%s\" inválido!"
msgid "Bad printer-state value %d!"
-msgstr ""
-
-#, c-format
+msgstr "Valor printer-state inválido %d!"
msgid "Bad request version number %d.%d!"
-msgstr ""
-
+msgstr "Número de versão pedido inválido %d.%d!"
msgid "Bad subscription ID!"
-msgstr ""
-
+msgstr "ID de subscrição inválido!"
msgid "Banners"
-msgstr ""
-
+msgstr "Faixas publicitárias"
msgid "Cancel RSS Subscription"
-msgstr ""
-
+msgstr "Cancelar subscrição RSS"
msgid "Change Settings"
-msgstr ""
-
-#, c-format
+msgstr "Alterar especificações"
msgid "Character set \"%s\" not supported!"
-msgstr ""
-
+msgstr "Conjunto de caracteres \"%s\" não suportado!"
msgid "Classes"
-msgstr ""
-
-msgid ""
-"Commands may be abbreviated. Commands are:\n"
-"\n"
-"exit help quit status ?\n"
-msgstr ""
-
-#, c-format
+msgstr "Classes"
+msgid "Commands may be abbreviated. Commands are:\n\nexit help quit status ?\n"
+msgstr "É possível abreviar comandos. Comandos são:\n\nsair ajuda sair estado ?\n"
msgid "Could not scan type \"%s\"!"
-msgstr ""
-
+msgstr "Impossível procurar tipo \"%s\"!"
msgid "Cover open."
-msgstr ""
-
+msgstr "Tampa aberta."
msgid "Custom"
-msgstr ""
-
+msgstr "Personalizar"
msgid "Delete Class"
-msgstr ""
-
+msgstr "Apagar classe"
msgid "Delete Printer"
-msgstr ""
-
-#, c-format
+msgstr "Apagar impressora"
msgid "Destination \"%s\" is not accepting jobs."
-msgstr ""
-
+msgstr "Destino \"%s\" não está a aceitar trabalhos."
msgid "Developer almost empty."
-msgstr ""
-
+msgstr "Programador quase vazio."
msgid "Developer empty!"
-msgstr ""
-
-#, c-format
-msgid ""
-"Device: uri = %s\n"
-" class = %s\n"
-" info = %s\n"
-" make-and-model = %s\n"
-" device-id = %s\n"
-msgstr ""
-
+msgstr "Programador vazio!"
+msgid "Device: uri = %s\n class = %s\n info = %s\n make-and-model = %s\n device-id = %s\n"
+msgstr "Periférico: uri = %s\n class = %s\n info = %s\n make-and-model = %s\n device-id = %s\n"
msgid "Door open."
-msgstr ""
-
-#, c-format
+msgstr "Porta aberta."
msgid "EMERG: Unable to allocate memory for page info: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "EMERG: Impossível alocar memória para info de página: %s\n"
msgid "EMERG: Unable to allocate memory for pages array: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "EMERG: Impossível alocar memória para matriz de páginas: %s\n"
msgid "ERROR: %ld: (canceled:%ld)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %ld: (cancelado:%ld)\n"
msgid "ERROR: Bad %%BoundingBox: comment seen!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comentário %%BoundingBox: inválido!\n"
msgid "ERROR: Bad %%IncludeFeature: comment!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comentário %%IncludeFeature: inválido!\n"
msgid "ERROR: Bad %%Page: comment in file!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Comentário %%Page: inválido no ficheiro!\n"
msgid "ERROR: Bad %%PageBoundingBox: comment in file!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Comentário %%PageBoundingBox: inválido no ficheiro!\n"
msgid "ERROR: Bad SCSI device file \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ficheiro de periférico SCSI inválido \"%s\"!\n"
msgid "ERROR: Bad charset file %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ficheiro charset inválido %s\n"
msgid "ERROR: Bad charset type %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Tipo charset inválido %s\n"
msgid "ERROR: Bad font description line: %s\n"
-msgstr ""
-
+msgstr "ERROR: Linha de descrição de tipo de letra inválida: %s\n"
msgid "ERROR: Bad page setup!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Configuração de página inválida!\n"
msgid "ERROR: Bad text direction %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Orientação de texto inválida %s\n"
msgid "ERROR: Bad text width %s\n"
-msgstr ""
-
+msgstr "ERROR: Largura de texto inválida %s\n"
msgid "ERROR: Destination printer does not exist!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impressora de destino não existe!\n"
msgid "ERROR: Duplicate %%BoundingBox: comment seen!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comentário %%BoundingBox: em duplicado!\n"
msgid "ERROR: Duplicate %%Pages: comment seen!\n"
-msgstr ""
-
+msgstr "ERROR: Detectado comentário %%Pages: em duplicado!\n"
msgid "ERROR: Empty print file!\n"
-msgstr ""
-
+msgstr "ERROR: Ficheiro de impressão vazio!\n"
msgid "ERROR: Invalid HP-GL/2 command seen, unable to print file!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado comando HP-GL/2 inválido; impossível imprimir ficheiro!\n"
msgid "ERROR: Missing %%EndProlog!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %%EndProlog inexistente!\n"
msgid "ERROR: Missing %%EndSetup!\n"
-msgstr ""
-
-msgid ""
-"ERROR: Missing device URI on command-line and no DEVICE_URI environment "
-"variable!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: %%EndSetup inexistente!\n"
+msgid "ERROR: Missing device URI on command-line and no DEVICE_URI environment variable!\n"
+msgstr "ERROR: URI de periférico inexistente em command-line e sem variável de ambiente DEVICE_URI!\n"
msgid "ERROR: No %%BoundingBox: comment in header!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Sem comentário %%BoundingBox: no cabeçalho!\n"
msgid "ERROR: No %%Pages: comment in header!\n"
-msgstr ""
-
-msgid ""
-"ERROR: No device URI found in argv[0] or in DEVICE_URI environment "
-"variable!\n"
-msgstr ""
-
+msgstr "ERROR: Sem comentário %%Pages: no cabeçalho!\n"
+msgid "ERROR: No device URI found in argv[0] or in DEVICE_URI environment variable!\n"
+msgstr "ERROR: Sem URI de periférico em argv[0] ou na variável de ambiente DEVICE_URI!\n"
msgid "ERROR: No pages found!\n"
-msgstr ""
-
+msgstr "ERROR: Sem páginas!\n"
msgid "ERROR: Out of paper!\n"
-msgstr ""
-
+msgstr "ERROR: Sem papel!\n"
msgid "ERROR: PRINTER environment variable not defined!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Variável de ambiente PRINTER não definida!\n"
msgid "ERROR: Print file was not accepted (%s)!\n"
-msgstr ""
-
+msgstr "ERROR: Ficheiro de impressão não foi aceite (%s)!\n"
msgid "ERROR: Printer not responding!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impressora não responde!\n"
msgid "ERROR: Remote host did not accept control file (%d)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Host remoto não aceitou ficheiro de controlo (%d)\n"
msgid "ERROR: Remote host did not accept data file (%d)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Host remoto não aceitou ficheiro de dados (%d)\n"
msgid "ERROR: Unable to add file %d to job: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível adicionar ficheiro %d ao trabalho: %s\n"
msgid "ERROR: Unable to cancel job %d: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível cancelar trabalho %d: %s\n"
msgid "ERROR: Unable to create temporary compressed print file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível criar ficheiro de impressão comprimido temporário: %s\n"
msgid "ERROR: Unable to create temporary file - %s.\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível criar ficheiro temporário - %s.\n"
msgid "ERROR: Unable to create temporary file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível criar ficheiro temporário: %s.\n"
msgid "ERROR: Unable to exec pictwpstops: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível executar pictwpstops: %s\n"
msgid "ERROR: Unable to fork pictwpstops: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível separar pictwpstops: %s\n"
msgid "ERROR: Unable to get PPD file for printer \"%s\" - %s.\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível obter ficheiro PPD para impressora \"%s\" - %s.\n"
msgid "ERROR: Unable to get job %d attributes (%s)!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível obter atributos do trabalho %d (%s)!\n"
msgid "ERROR: Unable to get printer status (%s)!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível obter estado da impressora (%s)!\n"
msgid "ERROR: Unable to locate printer '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível localizar impressora '%s'!\n"
msgid "ERROR: Unable to open \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir \"%s\" - %s\n"
msgid "ERROR: Unable to open %s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir %s: %s\n"
msgid "ERROR: Unable to open device file \"%s\": %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de periférico \"%s\": %s\n"
msgid "ERROR: Unable to open file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro \"%s\" - %s\n"
msgid "ERROR: Unable to open file \"%s\": %s\n"
-msgstr ""
-
+msgstr "ERROR: Impossível abrir ficheiro \"%s\": %s\n"
msgid "ERROR: Unable to open image file for printing!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de imagem para impressão!\n"
msgid "ERROR: Unable to open print file \"%s\": %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão \"%s\": %s\n"
msgid "ERROR: Unable to open print file %s - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão %s - %s\n"
msgid "ERROR: Unable to open print file %s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão %s: %s\n"
msgid "ERROR: Unable to open temporary compressed print file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível abrir ficheiro de impressão comprimido temporário: %s\n"
msgid "ERROR: Unable to seek to offset %ld in file - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível atingir offset %ld no ficheiro - %s\n"
msgid "ERROR: Unable to seek to offset %lld in file - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível atingir offset %lld no ficheiro - %s\n"
msgid "ERROR: Unable to send print data (%d)\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível enviar dados de impressão (%d)\n"
msgid "ERROR: Unable to wait for pictwpstops: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível aguardar por pictwpstops: %s\n"
msgid "ERROR: Unable to write %d bytes to \"%s\": %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível escrever %d bytes em \"%s\": %s\n"
msgid "ERROR: Unable to write print data: %s\n"
-msgstr ""
-
+msgstr "ERROR: Impossível escrever dados de impressão: %s\n"
msgid "ERROR: Unable to write raster data to driver!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível escrever dados de retícula no recurso!\n"
msgid "ERROR: Unable to write uncompressed document data: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Impossível escrever dados de documento não comprimidos: %s\n"
msgid "ERROR: Unknown encryption option value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor de opção de encriptação desconhecido \"%s\"!\n"
msgid "ERROR: Unknown file order \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Ordem de ficheiro desconhecida \"%s\"\n"
msgid "ERROR: Unknown format character \"%c\"\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Caracteres de formato desconhecido \"%c\"\n"
msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Opção desconhecida \"%s\" com valor \"%s\"!\n"
msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Modo de impressão desconhecido \"%s\"\n"
msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor de opção de versão desconhecido \"%s\"!\n"
msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor de brilho não suportado %s ao utilizar brilho=100!\n"
msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor gama não suportado %s ao utilizar gama=1000!\n"
msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor number-up não suportado %d ao utilizar number-up=1!\n"
+msgid "ERROR: Unsupported number-up-layout value %s, using number-up-layout=lrtb!\n"
+msgstr "ERROR: Valor number-up-layout não suportado %s ao utilizar number-up-layout=lrtb!\n"
msgid "ERROR: Unsupported page-border value %s, using page-border=none!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Valor page-border não suportado %s ao utilizar page-border=none!\n"
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: Detectado excesso doc_printf (%d bytes); a interromper!\n"
msgid "ERROR: pictwpstops exited on signal %d!\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: pictwpstops saiu ao sinal %d!\n"
msgid "ERROR: pictwpstops exited with status %d!\n"
-msgstr ""
-
-msgid ""
-"ERROR: recoverable: Unable to connect to printer; will retry in 30 "
-"seconds...\n"
-msgstr ""
-
-#, c-format
+msgstr "ERROR: pictwpstops saiu com o estado %d!\n"
+msgid "ERROR: recoverable: Unable to connect to printer; will retry in 30 seconds...\n"
+msgstr "ERROR: recuperável: Impossível ligar à impressora; nova tentativa dentro de 30 segundos...\n"
msgid "ERROR: select() returned %d\n"
-msgstr ""
-
+msgstr "ERROR: selecção() devolveu %d\n"
msgid "Edit Configuration File"
-msgstr ""
-
+msgstr "Editar ficheiro de configuração"
msgid "Empty PPD file!"
-msgstr ""
-
+msgstr "Ficheiro PPD vazio!"
msgid "Ending Banner"
-msgstr ""
-
+msgstr "Terminar faixa publicitária"
msgid "Enter old password:"
-msgstr ""
-
+msgstr "Introduza palavra-passe antiga:"
msgid "Enter password again:"
-msgstr ""
-
+msgstr "Introduza palavra-passe novamente:"
msgid "Enter password:"
-msgstr ""
-
-msgid ""
-"Enter your username and password or the root username and password to access "
-"this page. If you are using Kerberos authentication, make sure you have a "
-"valid Kerberos ticket."
-msgstr ""
-
+msgstr "Introduza palavra-passe:"
+msgid "Enter your username and password or the root username and password to access this page. If you are using Kerberos authentication, make sure you have a valid Kerberos ticket."
+msgstr "Introduza o seu nome de utilizador e palavra-passe ou o nome de utilizador e palavra-passe da raiz para aceder a esta página. Se utilizar a autenticação Kerberos, certifique-se que tem um ticket de Kerberos válido."
msgid "Error Policy"
-msgstr ""
-
+msgstr "Política de Erros"
msgid "Error: need hostname after '-h' option!\n"
-msgstr ""
-
+msgstr "Erro: necessário nome de host após opção '-h'!\n"
msgid "Export Printers to Samba"
-msgstr ""
-
+msgstr "Exportar Impressoras para Samba"
msgid "FAIL\n"
-msgstr ""
-
-#, c-format
+msgstr "FAIL\n"
msgid "FATAL: Could not load %s\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"File device URIs have been disabled! To enable, see the FileDevice directive "
-"in \"%s/cupsd.conf\"."
-msgstr ""
-
+msgstr "FATAL: Impossível carregar %s\n"
+msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgstr "URIs do periférico do ficheiro foram desactivados! Para activar, consulte a directiva FileDevice em \"%s/cupsd.conf\"."
msgid "Fuser temperature high!"
-msgstr ""
-
+msgstr "Temperatura do fusor elevada!"
msgid "Fuser temperature low!"
-msgstr ""
-
+msgstr "Temperatura do fusor baixa!"
msgid "General"
-msgstr ""
-
+msgstr "Geral"
msgid "Got a printer-uri attribute but no job-id!"
-msgstr ""
-
+msgstr "Obtive um atributo printer-uri, mas não job-id!"
msgid "Help"
-msgstr ""
-
-#, c-format
+msgstr "Ajuda"
msgid "INFO: Attempting to connect to host %s for printer %s\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Tentativa de ligar ao host %s para impressora %s\n"
msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr ""
-
+msgstr "INFO: Tentativa de ligar ao host %s na porta %d\n"
msgid "INFO: Canceling print job...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A cancelar trabalho de impressão...\n"
msgid "INFO: Connected to %s...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ligado a %s...\n"
msgid "INFO: Connecting to %s on port %d...\n"
-msgstr ""
-
+msgstr "INFO: A ligar a %s na porta %d...\n"
msgid "INFO: Control file sent successfully\n"
-msgstr ""
-
+msgstr "INFO: Ficheiro de controlo enviado com êxito\n"
msgid "INFO: Data file sent successfully\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de dados enviado com êxito\n"
msgid "INFO: Formatting page %d...\n"
-msgstr ""
-
+msgstr "INFO: A formatar página %d...\n"
msgid "INFO: Loading image file...\n"
-msgstr ""
-
+msgstr "INFO: A carregar ficheiro de imagem...\n"
msgid "INFO: Print file sent, waiting for printer to finish...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de impressão enviado; a aguardar conclusão da impressora...\n"
msgid "INFO: Printer busy (status:0x%08x)\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada (estado:0x%08x)\n"
msgid "INFO: Printer busy; will retry in 10 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada; nova tentativa dentro de 10 segundos...\n"
msgid "INFO: Printer busy; will retry in 30 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada; nova tentativa dentro de 30 segundos...\n"
msgid "INFO: Printer busy; will retry in 5 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora ocupada; nova tentativa dentro de 5 segundos...\n"
msgid "INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n"
-msgstr ""
-
+msgstr "INFO: Impressora não suporta IPP/1.1; a tentar IPP/1.0...\n"
msgid "INFO: Printer is busy; will retry in 5 seconds...\n"
-msgstr ""
-
+msgstr "INFO: Impressora está ocupada; nova tentativa dentro de 5 segundos...\n"
msgid "INFO: Printer is currently off-line.\n"
-msgstr ""
-
+msgstr "INFO: Impressora está actualmente sem ligação.\n"
msgid "INFO: Printer is now on-line.\n"
-msgstr ""
-
+msgstr "INFO: Impressora tem agora ligação.\n"
msgid "INFO: Printer not connected; will retry in 30 seconds...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Impressora sem ligação; nova tentativa dentro de 30 segundos...\n"
msgid "INFO: Printing page %d, %d%% complete...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A imprimir página %d, %d%% concluído...\n"
msgid "INFO: Printing page %d...\n"
-msgstr ""
-
+msgstr "INFO: A imprimir página %d...\n"
msgid "INFO: Ready to print.\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Preparada para imprimir.\n"
msgid "INFO: Sending control file (%lu bytes)\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar ficheiro de controlo (%lu bytes)\n"
msgid "INFO: Sending control file (%u bytes)\n"
-msgstr ""
-
+msgstr "INFO: A enviar ficheiro de controlo (%u bytes)\n"
msgid "INFO: Sending data\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar dados\n"
msgid "INFO: Sending data file (%ld bytes)\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar ficheiro de dados (%ld bytes)\n"
msgid "INFO: Sending data file (%lld bytes)\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: A enviar ficheiro de dados (%lld bytes)\n"
msgid "INFO: Sent print file, %ld bytes...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de impressão enviado, %ld bytes...\n"
msgid "INFO: Sent print file, %lld bytes...\n"
-msgstr ""
-
-#, c-format
+msgstr "INFO: Ficheiro de impressão enviado, %lld bytes...\n"
msgid "INFO: Spooling LPR job, %.0f%% complete...\n"
-msgstr ""
-
+msgstr "INFO: A processar trabalho LPR, %.0f%% concluído...\n"
msgid "INFO: Unable to contact printer, queuing on next printer in class...\n"
-msgstr ""
-
+msgstr "INFO: Impossível contactar impressora; a colocar em fila na próxima impressora na classe...\n"
msgid "INFO: Waiting for job to complete...\n"
-msgstr ""
-
+msgstr "INFO: A aguardar conclusão do trabalho...\n"
msgid "Illegal control character"
-msgstr ""
-
+msgstr "Carácter de controlo ilegal"
msgid "Illegal main keyword string"
-msgstr ""
-
+msgstr "Cadeia de palavra-chave principal ilegal"
msgid "Illegal option keyword string"
-msgstr ""
-
+msgstr "Cadeia de palavra-chave de opção ilegal"
msgid "Illegal translation string"
-msgstr ""
-
+msgstr "Cadeia de tradução ilegal"
msgid "Illegal whitespace character"
-msgstr ""
-
+msgstr "Carácter de espaço em branco ilegal"
msgid "Ink/toner almost empty."
-msgstr ""
-
+msgstr "Tinta/toner quase vazio."
msgid "Ink/toner empty!"
-msgstr ""
-
+msgstr "Tinta/toner vazio!"
msgid "Ink/toner waste bin almost full."
-msgstr ""
-
+msgstr "Receptáculo de tinta/toner quase cheio."
msgid "Ink/toner waste bin full!"
-msgstr ""
-
+msgstr "Receptáculo de tinta/toner cheio!"
msgid "Interlock open."
-msgstr ""
-
+msgstr "Bloqueio aberto."
msgid "Internal error"
-msgstr ""
-
+msgstr "Erro interno"
msgid "JCL"
-msgstr ""
-
-#, c-format
+msgstr "JCL"
msgid "Job #%d cannot be restarted - no files!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível reiniciar trabalho #%d - sem ficheiros!"
msgid "Job #%d does not exist!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não existe!"
msgid "Job #%d is already aborted - can't cancel."
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d já interrompido - impossível cancelar."
msgid "Job #%d is already canceled - can't cancel."
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d já cancelado - impossível cancelar."
msgid "Job #%d is already completed - can't cancel."
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d já concluído - impossível cancelar."
msgid "Job #%d is finished and cannot be altered!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d concluído; não é possível alterar!"
msgid "Job #%d is not complete!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não concluído!"
msgid "Job #%d is not held for authentication!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não retido para autenticação!"
msgid "Job #%d is not held!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%d não retido!"
msgid "Job #%s does not exist!"
-msgstr ""
-
-#, c-format
+msgstr "Trabalho #%s não existe!"
msgid "Job %d not found!"
-msgstr ""
-
+msgstr "Trabalho %d não encontrado!"
msgid "Job Completed"
-msgstr ""
-
+msgstr "Trabalho concluído"
msgid "Job Created"
-msgstr ""
-
+msgstr "Trabalho criado"
msgid "Job Options Changed"
-msgstr ""
-
+msgstr "Opções de trabalho alteradas"
msgid "Job Stopped"
-msgstr ""
-
+msgstr "Trabalho parado"
msgid "Job is completed and cannot be changed."
-msgstr ""
-
+msgstr "Trabalho concluído; não é possível alterar."
msgid "Job operation failed:"
-msgstr ""
-
+msgstr "Operação de trabalho falhou:"
msgid "Job state cannot be changed."
-msgstr ""
-
+msgstr "Impossível alterar estado do trabalho."
msgid "Job subscriptions cannot be renewed!"
-msgstr ""
-
+msgstr "Impossível renovar subscrições do trabalho!"
msgid "Jobs"
-msgstr ""
-
-#, c-format
+msgstr "Trabalhos"
msgid "Language \"%s\" not supported!"
-msgstr ""
-
+msgstr "Idioma \"%s\" não suportado!"
msgid "Line longer than the maximum allowed (255 characters)"
-msgstr ""
-
+msgstr "Linha excede máximo permitido (255 caracteres)"
msgid "List Available Printers"
-msgstr ""
-
+msgstr "Apresentar impressoras disponíveis"
msgid "Media Size"
-msgstr ""
-
+msgstr "Tamanho do suporte"
msgid "Media Source"
-msgstr ""
-
+msgstr "Origem do suporte"
msgid "Media Type"
-msgstr ""
-
+msgstr "Tipo de suporte"
msgid "Media jam!"
-msgstr ""
-
+msgstr "Suporte encravado!"
msgid "Media tray almost empty."
-msgstr ""
-
+msgstr "Tabuleiro de suporte quase vazio."
msgid "Media tray empty!"
-msgstr ""
-
+msgstr "Tabuleiro de suporte vazio!"
msgid "Media tray missing!"
-msgstr ""
-
+msgstr "Tabuleiro de suporte inexistente!"
msgid "Media tray needs to be filled."
-msgstr ""
-
+msgstr "É necessário encher o tabuleiro de suporte."
msgid "Memory allocation error"
-msgstr ""
-
+msgstr "Erro de alocação de memória"
msgid "Missing PPD-Adobe-4.x header"
-msgstr ""
-
+msgstr "Cabeçalho PPD-Adobe-4.x inexistente"
msgid "Missing asterisk in column 1"
-msgstr ""
-
-#, c-format
+msgstr "Asterisco inexistente na coluna 1"
msgid "Missing double quote on line %d!"
-msgstr ""
-
+msgstr "Aspas inexistentes na linha %d!"
msgid "Missing form variable!"
-msgstr ""
-
+msgstr "Variável de formato inexistente!"
msgid "Missing notify-subscription-ids attribute!"
-msgstr ""
-
+msgstr "Atributo notify-subscription-ids inexistente!"
msgid "Missing requesting-user-name attribute!"
-msgstr ""
-
+msgstr "Atributo requesting-user-name inexistente!"
msgid "Missing required attributes!"
-msgstr ""
-
-#, c-format
+msgstr "Atributos necessários inexistentes!"
msgid "Missing value on line %d!"
-msgstr ""
-
+msgstr "Valor inexistente na linha %d!"
msgid "Missing value string"
-msgstr ""
-
-#, c-format
-msgid ""
-"Model: name = %s\n"
-" natural_language = %s\n"
-" make-and-model = %s\n"
-" device-id = %s\n"
-msgstr ""
-
+msgstr "Cadeia de valor inexistente"
+msgid "Model: name = %s\n natural_language = %s\n make-and-model = %s\n device-id = %s\n"
+msgstr "Modelo: name = %s\n natural_language = %s\n make-and-model = %s\n device-id = %s\n"
msgid "Modify Class"
-msgstr ""
-
+msgstr "Modificar classe"
msgid "Modify Printer"
-msgstr ""
-
+msgstr "Modificar impressora"
msgid "Move All Jobs"
-msgstr ""
-
+msgstr "Mover todos os trabalhos"
msgid "Move Job"
-msgstr ""
-
-#, c-format
+msgstr "Mover trabalho"
msgid "NOTICE: Print file accepted - job ID %d.\n"
-msgstr ""
-
+msgstr "NOTICE: Ficheiro de impressão aceite - ID do trabalho %d.\n"
msgid "NOTICE: Print file accepted - job ID unknown.\n"
-msgstr ""
-
+msgstr "NOTICE: Ficheiro de impressão aceite - ID do trabalho desconhecido.\n"
msgid "NULL PPD file pointer"
-msgstr ""
-
+msgstr "Ponteiro do ficheiro PPD NULL"
msgid "No"
-msgstr ""
-
+msgstr "Não"
msgid "No Windows printer drivers are installed!"
-msgstr ""
-
-#, c-format
+msgstr "Sem controladores de impressora Windows instalados!"
msgid "No active jobs on %s!"
-msgstr ""
-
+msgstr "Sem trabalhos activos em %s!"
msgid "No attributes in request!"
-msgstr ""
-
+msgstr "Sem atributos no pedido!"
msgid "No authentication information provided!"
-msgstr ""
-
+msgstr "Sem informações de autenticação fornecidas!"
msgid "No default printer"
-msgstr ""
-
+msgstr "Sem impressora predefinida"
msgid "No destinations added."
-msgstr ""
-
+msgstr "Sem destinos adicionados."
msgid "No file!?!"
-msgstr ""
-
+msgstr "Sem ficheiro!?!"
msgid "No subscription attributes in request!"
-msgstr ""
-
+msgstr "Sem atributos de subscrição no pedido!"
msgid "No subscriptions found."
-msgstr ""
-
+msgstr "Sem subscrições."
msgid "None"
-msgstr ""
-
+msgstr "Sem"
msgid "Not allowed to print."
-msgstr ""
-
+msgstr "Sem permissão para imprimir."
msgid "OK"
-msgstr ""
-
+msgstr "OK"
msgid "OPC almost at end-of-life."
-msgstr ""
-
+msgstr "OPC quase em fim de vida."
msgid "OPC at end-of-life!"
-msgstr ""
-
+msgstr "OPC em fim de vida!"
msgid "OpenGroup without a CloseGroup first"
-msgstr ""
-
+msgstr "OpenGroup sem um CloseGroup primeiro"
msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
-msgstr ""
-
+msgstr "OpenUI/JCLOpenUI sem um CloseUI/JCLCloseUI primeiro"
msgid "Operation Policy"
-msgstr ""
-
+msgstr "Política de Operação"
msgid "Options Installed"
-msgstr ""
-
+msgstr "Opções instaladas"
msgid "Out of toner!"
-msgstr ""
-
+msgstr "Sem toner!"
msgid "Output Mode"
-msgstr ""
-
+msgstr "Modo de saída"
msgid "Output bin almost full."
-msgstr ""
-
+msgstr "Receptáculo de saída quase cheio."
msgid "Output bin full!"
-msgstr ""
-
-#, c-format
+msgstr "Receptáculo de saída cheio!"
msgid "Output for printer %s is sent to %s\n"
-msgstr ""
-
-#, c-format
+msgstr "Saída de impressora %s enviada para %s\n"
msgid "Output for printer %s is sent to remote printer %s on %s\n"
-msgstr ""
-
-#, c-format
+msgstr "Saída de impressora %s enviada para impressora remota %s em %s\n"
msgid "Output for printer %s/%s is sent to %s\n"
-msgstr ""
-
-#, c-format
+msgstr "Saída de impressora %s/%s enviada para %s\n"
msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
-msgstr ""
-
+msgstr "Saída de impressora %s/%s enviada para impressora remota %s em %s\n"
msgid "Output tray missing!"
-msgstr ""
-
+msgstr "Tabuleiro de saída inexistente!"
msgid "PASS\n"
-msgstr ""
-
+msgstr "PASS\n"
msgid "PS Binary Protocol"
-msgstr ""
-
-#, c-format
+msgstr "Protocolo Binário PS"
msgid "Password for %s on %s? "
-msgstr ""
-
-#, c-format
+msgstr "Palavra-passe para %s em %s? "
msgid "Password for %s required to access %s via SAMBA: "
-msgstr ""
-
+msgstr "Palavra-passe para %s requerida para aceder a %s via SAMBA: "
msgid "Policies"
-msgstr ""
-
+msgstr "Políticas"
msgid "Print Job:"
-msgstr ""
-
+msgstr "Imprimir trabalho:"
msgid "Print Test Page"
-msgstr ""
-
+msgstr "Imprimir página de teste"
msgid "Printer Added"
-msgstr ""
-
+msgstr "Impressora adicionada"
msgid "Printer Deleted"
-msgstr ""
-
+msgstr "Impressora apagada"
msgid "Printer Maintenance"
-msgstr ""
-
+msgstr "Manutenção da impressora"
msgid "Printer Modified"
-msgstr ""
-
+msgstr "Impressora modificada"
msgid "Printer Stopped"
-msgstr ""
-
+msgstr "Impressora parada"
msgid "Printer off-line."
-msgstr ""
-
+msgstr "Impressora sem ligação."
msgid "Printer:"
-msgstr ""
-
+msgstr "Impressora:"
msgid "Printers"
-msgstr ""
-
+msgstr "Impressoras"
msgid "Purge Jobs"
-msgstr ""
-
+msgstr "Limpar trabalhos"
msgid "Quota limit reached."
-msgstr ""
-
+msgstr "Quota atingida."
msgid "Rank Owner Job File(s) Total Size\n"
-msgstr ""
-
-msgid ""
-"Rank Owner Pri Job Files Total Size\n"
-msgstr ""
-
+msgstr "Classificação Proprietário Trabalho Ficheiro(s) Tamanho total\n"
+msgid "Rank Owner Pri Job Files Total Size\n"
+msgstr "Classificação Proprietário Pri Trabalho Ficheiros Tamanho total\n"
msgid "Reject Jobs"
-msgstr ""
-
+msgstr "Rejeitar trabalhos"
msgid "Resolution"
-msgstr ""
-
-#, c-format
+msgstr "Resolução"
msgid "Running command: %s %s -N -A %s -c '%s'\n"
-msgstr ""
-
+msgstr "Comando em execução: %s %s -N -A %s -c '%s'\n"
msgid "Server Restarted"
-msgstr ""
-
+msgstr "Servidor reiniciado"
msgid "Server Security Auditing"
-msgstr ""
-
+msgstr "Auditoria de segurança do servidor"
msgid "Server Started"
-msgstr ""
-
+msgstr "Servidor iniciado"
msgid "Server Stopped"
-msgstr ""
-
+msgstr "Servidor parado"
msgid "Set Allowed Users"
-msgstr ""
-
+msgstr "Especificar utilizadores permitidos"
msgid "Set As Default"
-msgstr ""
-
+msgstr "Predefinir"
msgid "Set Class Options"
-msgstr ""
-
+msgstr "Especificar opções de classe"
msgid "Set Printer Options"
-msgstr ""
-
+msgstr "Especificar opções de impressora"
msgid "Set Publishing"
-msgstr ""
-
+msgstr "Especificar publicação"
msgid "Start Class"
-msgstr ""
-
+msgstr "Iniciar classe"
msgid "Start Printer"
-msgstr ""
-
+msgstr "Iniciar impressora"
msgid "Starting Banner"
-msgstr ""
-
+msgstr "Iniciar faixa publicitária"
msgid "Stop Class"
-msgstr ""
-
+msgstr "Parar classe"
msgid "Stop Printer"
-msgstr ""
-
-#, c-format
+msgstr "Parar impressora"
msgid "The PPD file \"%s\" could not be found."
-msgstr ""
-
-#, c-format
+msgstr "Impossível localizar o ficheiro PPD \"%s\"."
msgid "The PPD file \"%s\" could not be opened: %s"
-msgstr ""
-
-msgid ""
-"The class name may only contain up to 127 printable characters and may not "
-"contain spaces, slashes (/), or the pound sign (#)."
-msgstr ""
-
-msgid ""
-"The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr ""
-
-#, c-format
+msgstr "Impossível abrir o ficheiro PPD \"%s\": %s"
+msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "O nome de classe pode ter o máximo de 127 caracteres imprimíveis e não pode ter espaços, barras (/) ou cardinal (#)."
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "Não é possível utilizar o atributo notify-lease-duration com subscrições de trabalho."
msgid "The notify-user-data value is too large (%d > 63 octets)!"
-msgstr ""
-
-msgid ""
-"The printer name may only contain up to 127 printable characters and may not "
-"contain spaces, slashes (/), or the pound sign (#)."
-msgstr ""
-
+msgstr "O valor notify-user-data é demasiado grande (%d > 63 octetos)!"
+msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "O nome de impressora pode ter o máximo de 127 caracteres imprimíveis e não pode ter espaços, barras (/) ou cardinal (#)."
msgid "The printer or class is not shared!"
-msgstr ""
-
+msgstr "Impressora ou classe não partilhadas!"
msgid "The printer or class was not found."
-msgstr ""
-
-#, c-format
+msgstr "Impressora ou classe não localizadas."
msgid "The printer-uri \"%s\" contains invalid characters."
-msgstr ""
-
+msgstr "O atributo printer-uri \"%s\" contém caracteres inválidos."
msgid "The printer-uri attribute is required!"
-msgstr ""
-
-msgid ""
-"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr ""
-
-msgid ""
-"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr ""
-
-msgid ""
-"The subscription name may not contain spaces, slashes (/), question marks "
-"(?), or the pound sign (#)."
-msgstr ""
-
+msgstr "Necessário atributo printer-uri!"
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr "O atributo printer-uri deve ser do formato \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr "O atributo printer-uri deve ser do formato \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgid "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)."
+msgstr "O nome de subscrição não pode ter espaços, barras (/), pontos de interrogação (?) ou cardinal (#)."
msgid "Toner low."
-msgstr ""
-
+msgstr "Pouco toner."
msgid "Too many active jobs."
-msgstr ""
-
+msgstr "Demasiados trabalhos activos."
msgid "Unable to access cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível aceder ao ficheiro cupsd.conf:"
msgid "Unable to add RSS subscription:"
-msgstr ""
-
+msgstr "Impossível adicionar subscrição RSS:"
msgid "Unable to add class:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível adicionar classe:"
msgid "Unable to add job for destination \"%s\"!"
-msgstr ""
-
+msgstr "Impossível adicionar trabalho ao destino \"%s\"!"
msgid "Unable to add printer:"
-msgstr ""
-
+msgstr "Impossível adicionar impressora:"
msgid "Unable to allocate memory for file types!"
-msgstr ""
-
+msgstr "Impossível alocar memória para tipos de ficheiros!"
msgid "Unable to cancel RSS subscription:"
-msgstr ""
-
+msgstr "Impossível cancelar subscrição RSS:"
msgid "Unable to change printer-is-shared attribute:"
-msgstr ""
-
+msgstr "Impossível alterar atributo printer-is-shared:"
msgid "Unable to change printer:"
-msgstr ""
-
+msgstr "Impossível alterar impressora:"
msgid "Unable to change server settings:"
-msgstr ""
-
-#, c-format
-msgid "Unable to copy 64-bit CUPS printer driver files (%d)!"
-msgstr ""
-
-#, c-format
-msgid "Unable to copy 64-bit Windows printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível alterar especificações do servidor:"
msgid "Unable to copy CUPS printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de recurso de impressora CUPS (%d)!"
msgid "Unable to copy PPD file - %s!"
-msgstr ""
-
+msgstr "Impossível copiar ficheiro PPD - %s!"
msgid "Unable to copy PPD file!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiro PPD!"
msgid "Unable to copy Windows 2000 printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de controladores de impressora Windows 2000 (%d)!"
msgid "Unable to copy Windows 9x printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível copiar ficheiros de controladores de impressora Windows 9x (%d)!"
msgid "Unable to copy interface script - %s!"
-msgstr ""
-
+msgstr "Impossível copiar script de interface - %s!"
msgid "Unable to create temporary file:"
-msgstr ""
-
+msgstr "Impossível criar ficheiro temporário:"
msgid "Unable to delete class:"
-msgstr ""
-
+msgstr "Impossível apagar classe:"
msgid "Unable to delete printer:"
-msgstr ""
-
+msgstr "Impossível apagar impressora:"
msgid "Unable to edit cupsd.conf files larger than 1MB!"
-msgstr ""
-
+msgstr "Impossível editar ficheiros cupsd.conf com mais de 1MB!"
msgid "Unable to find destination for job!"
-msgstr ""
-
+msgstr "Impossível localizar destino para trabalho!"
msgid "Unable to get class list:"
-msgstr ""
-
+msgstr "Impossível obter lista de classes:"
msgid "Unable to get class status:"
-msgstr ""
-
+msgstr "Impossível obter estado da classe:"
msgid "Unable to get list of printer drivers:"
-msgstr ""
-
+msgstr "Impossível obter lista de recursos da impressora:"
msgid "Unable to get printer attributes:"
-msgstr ""
-
+msgstr "Impossível obter atributos da impressora:"
msgid "Unable to get printer list:"
-msgstr ""
-
+msgstr "Impossível obter lista de impressoras:"
msgid "Unable to get printer status:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível obter estado da impressora:"
msgid "Unable to install Windows 2000 printer driver files (%d)!"
-msgstr ""
-
-#, c-format
+msgstr "Impossível instalar ficheiros de controladores de impressora Windows 2000 (%d)!"
msgid "Unable to install Windows 9x printer driver files (%d)!"
-msgstr ""
-
+msgstr "Impossível instalar ficheiros de controladores de impressora Windows 9x (%d)!"
msgid "Unable to modify class:"
-msgstr ""
-
+msgstr "Impossível modificar classe:"
msgid "Unable to modify printer:"
-msgstr ""
-
+msgstr "Impossível modificar impressora:"
msgid "Unable to move job"
-msgstr ""
-
+msgstr "Impossível mover trabalho"
msgid "Unable to move jobs"
-msgstr ""
-
+msgstr "Impossível mover trabalhos"
msgid "Unable to open PPD file"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro PPD"
msgid "Unable to open PPD file:"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro PPD:"
msgid "Unable to open cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível abrir ficheiro cupsd.conf:"
msgid "Unable to print test page:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível imprimir página de teste:"
msgid "Unable to run \"%s\": %s\n"
-msgstr ""
-
+msgstr "Impossível executar \"%s\": %s\n"
msgid "Unable to send maintenance job:"
-msgstr ""
-
-#, c-format
+msgstr "Impossível enviar trabalho de manutenção:"
msgid "Unable to set Windows printer driver (%d)!"
-msgstr ""
-
+msgstr "Impossível definir controlador de impressora Windows (%d)!"
msgid "Unable to set options:"
-msgstr ""
-
+msgstr "Impossível especificar opções:"
msgid "Unable to upload cupsd.conf file:"
-msgstr ""
-
+msgstr "Impossível carregar ficheiro cupsd.conf:"
msgid "Unknown"
-msgstr ""
-
-#, c-format
+msgstr "Desconhecida"
msgid "Unknown printer error (%s)!"
-msgstr ""
-
-#, c-format
+msgstr "Erro de impressora desconhecido (%s)!"
msgid "Unknown printer-error-policy \"%s\"."
-msgstr ""
-
-#, c-format
+msgstr "Printer-error-policy desconhecida \"%s\"."
msgid "Unknown printer-op-policy \"%s\"."
-msgstr ""
-
-#, c-format
+msgstr "Printer-op-policy desconhecida \"%s\"."
msgid "Unsupported compression \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Compressão não suportada \"%s\"!"
msgid "Unsupported compression attribute %s!"
-msgstr ""
-
-#, c-format
+msgstr "Atributo de compressão não suportado %s!"
msgid "Unsupported format \"%s\"!"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado \"%s\"!"
msgid "Unsupported format '%s'!"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado '%s'!"
msgid "Unsupported format '%s/%s'!"
-msgstr ""
-
-msgid ""
-"Usage:\n"
-"\n"
-" lpadmin [-h server] -d destination\n"
-" lpadmin [-h server] -x destination\n"
-" lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n"
-" [-r remove-class] [-v device] [-D description]\n"
-" [-P ppd-file] [-o name=value]\n"
-" [-u allow:user,user] [-u deny:user,user]\n"
-"\n"
-msgstr ""
-
-#, c-format
+msgstr "Formato não suportado %s/%s'!"
+msgid "Usage:\n\n lpadmin [-h server] -d destination\n lpadmin [-h server] -x destination\n lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n [-r remove-class] [-v device] [-D description]\n [-P ppd-file] [-o name=value]\n [-u allow:user,user] [-u deny:user,user]\n\n"
+msgstr "Utilização:\n\n lpadmin [-h server] -d destination\n lpadmin [-h server] -x destination\n lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n [-r remove-class] [-v device] [-D description]\n [-P ppd-file] [-o name=value]\n [-u allow:user,user] [-u deny:user,user]\n\n"
msgid "Usage: %s job-id user title copies options [file]\n"
-msgstr ""
-
-#, c-format
+msgstr "Utilização: opções de cópias de título de utilizador %s job-id [ficheiro]\n"
msgid "Usage: %s job-id user title copies options file\n"
-msgstr ""
-
-msgid ""
-"Usage: convert [ options ]\n"
-"\n"
-"Options:\n"
-"\n"
-" -f filename Set file to be converted (otherwise stdin)\n"
-" -o filename Set file to be generated (otherwise stdout)\n"
-" -i mime/type Set input MIME type (otherwise auto-typed)\n"
-" -j mime/type Set output MIME type (otherwise application/pdf)\n"
-" -P filename.ppd Set PPD file\n"
-" -a 'name=value ...' Set option(s)\n"
-" -U username Set username for job\n"
-" -J title Set title\n"
-" -c copies Set number of copies\n"
-" -u Remove the PPD file when finished\n"
-" -D Remove the input file when finished\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsaddsmb [options] printer1 ... printerN\n"
-" cupsaddsmb [options] -a\n"
-"\n"
-"Options:\n"
-" -E Encrypt the connection to the server\n"
-" -H samba-server Use the named SAMBA server\n"
-" -U samba-user Authenticate using the named SAMBA user\n"
-" -a Export all printers\n"
-" -h cups-server Use the named CUPS server\n"
-" -v Be verbose (show commands)\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsctl [options] [param=value ... paramN=valueN]\n"
-"\n"
-"Options:\n"
-"\n"
-" -E Enable encryption\n"
-" -U username Specify username\n"
-" -h server[:port] Specify server address\n"
-"\n"
-" --[no-]debug-logging Turn debug logging on/off\n"
-" --[no-]remote-admin Turn remote administration on/off\n"
-" --[no-]remote-any Allow/prevent access from the Internet\n"
-" --[no-]remote-printers Show/hide remote printers\n"
-" --[no-]share-printers Turn printer sharing on/off\n"
-" --[no-]user-cancel-any Allow/prevent users to cancel any job\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
-"\n"
-"-c config-file Load alternate configuration file\n"
-"-f Run in the foreground\n"
-"-F Run in the foreground but detach\n"
-"-h Show this usage message\n"
-"-l Run cupsd from launchd(8)\n"
-msgstr ""
-
-msgid ""
-"Usage: cupsfilter -m mime/type [ options ] filename\n"
-"\n"
-"Options:\n"
-"\n"
-" -c cupsd.conf Set cupsd.conf file to use\n"
-" -n copies Set number of copies\n"
-" -o name=value Set option(s)\n"
-" -p filename.ppd Set PPD file\n"
-" -t title Set title\n"
-msgstr ""
-
-msgid ""
-"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
-" cupstestdsc [options] -\n"
-"\n"
-"Options:\n"
-"\n"
-" -h Show program usage\n"
-"\n"
-" Note: this program only validates the DSC comments, not the PostScript "
-"itself.\n"
-msgstr ""
-
-msgid ""
-"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
-" program | cupstestppd [options] -\n"
-"\n"
-"Options:\n"
-"\n"
-" -R root-directory Set alternate root\n"
-" -W {all,none,constraints,defaults,filters,translations}\n"
-" Issue warnings instead of errors\n"
-" -q Run silently\n"
-" -r Use 'relaxed' open mode\n"
-" -v Be slightly verbose\n"
-" -vv Be very verbose\n"
-msgstr ""
-
+msgstr "Utilização: ficheiro de opções de cópias de título de utilizador %s job-id\n"
+msgid "Usage: cupsaddsmb [options] printer1 ... printerN\n cupsaddsmb [options] -a\n\nOptions:\n -E Encrypt the connection to the server\n -H samba-server Use the named SAMBA server\n -U samba-user Authenticate using the named SAMBA user\n -a Export all printers\n -h cups-server Use the named CUPS server\n -v Be verbose (show commands)\n"
+msgstr "Utilização: cupsaddsmb [options] printer1 ... printerN\n cupsaddsmb [options] -a\n\nOpções:\n -E Encriptar a ligação ao servidor\n -H samba-server Utilizar o servidor SAMBA\n -U samba-user Autenticar utilizando utilizador SAMBA\n -a Exportar todas as impressoras\n -h cups-server Utilizar o servidor CUPS\n -v Verboso (mostrar comandos)\n"
+msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]\n\nOptions:\n\n -E Enable encryption\n -U username Specify username\n -h server[:port] Specify server address\n\n --[no-]debug-logging Turn debug logging on/off\n --[no-]remote-admin Turn remote administration on/off\n --[no-]remote-any Allow/prevent access from the Internet\n --[no-]remote-printers Show/hide remote printers\n --[no-]share-printers Turn printer sharing on/off\n --[no-]user-cancel-any Allow/prevent users to cancel any job\n"
+msgstr "Utilização: cupsctl [options] [param=value ... paramN=valueN]\n\nOpções:\n\n -E Activar encriptação\n -U username Especificar nome de utilizador\n -h server[:port] Especificar endereço de servidor\n\n --[no-]debug-logging Activar/desactivar registo da depuração\n --[no-]remote-admin Activar/desactivar administração remota\n --[no-]remote-any Permitir/impedir acesso a partir da Internet\n --[no-]remote-printers Mostrar/ocultar impressoras remotas\n --[no-]share-printers Activar/desactivar partilha de impressora\n --[no-]user-cancel-any Permitir/impedir utilizadores de cancelar trabalhos\n"
+msgid "Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n\n-c config-file Load alternate configuration file\n-f Run in the foreground\n-F Run in the foreground but detach\n-h Show this usage message\n-l Run cupsd from launchd(8)\n"
+msgstr "Utilização: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n\n-c config-file Carregar ficheiro de configuração alternativa\n-f Executar em primeiro plano\n-F Executar em primeiro plano, mas separar\n-h Mostrar esta mensagem de utilização\n-l Executar cupsd a partir de launchd(8)\n"
+msgid "Usage: cupsfilter -m mime/type [ options ] filename(s)\n\nOptions:\n\n -c cupsd.conf Set cupsd.conf file to use\n -n copies Set number of copies\n -o name=value Set option(s)\n -p filename.ppd Set PPD file\n -t title Set title\n"
+msgstr "Utilização: cupsfilter -m mime/type [ options ] filename(s)\n\nOpções:\n\n -c cupsd.conf Especificar ficheiro cupsd.conf a utilizar\n -n copies Especificar número de cópias\n -o name=value Especificar opção(ões)\n -p filename.ppd Especificar ficheiro PPD\n -t title Especificar título\n"
+msgid "Usage: cupstestdsc [options] filename.ps [... filename.ps]\n cupstestdsc [options] -\n\nOptions:\n\n -h Show program usage\n\n Note: this program only validates the DSC comments, not the PostScript itself.\n"
+msgstr "Utilização: cupstestdsc [options] filename.ps [... filename.ps]\n cupstestdsc [options] -\n\nOpções:\n\n -h Mostrar utilização de programa\n\n Nota: este programa só valida comentários DSC, não o próprio PostScript.\n"
+msgid "Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n program | cupstestppd [options] -\n\nOptions:\n\n -R root-directory Set alternate root\n -W {all,none,constraints,defaults,filters,translations}\n Issue warnings instead of errors\n -q Run silently\n -r Use 'relaxed' open mode\n -v Be slightly verbose\n -vv Be very verbose\n"
+msgstr "Utilização: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n programa | cupstestppd [options] -\n\nOpções:\n\n -R root-directory Especificar raiz alternativa\n -W {tudo, sem, restrições, predefinições, filtros, traduções}\n Emitir avisos em vez de erros\n -q Executar silenciosamente\n -r Utilizar modo aberto 'descontraído'\n -v Ligeiramente verboso\n -vv Muito verboso\n"
msgid "Usage: lpmove job/src dest\n"
-msgstr ""
-
-msgid ""
-"Usage: lpoptions [-h server] [-E] -d printer\n"
-" lpoptions [-h server] [-E] [-p printer] -l\n"
-" lpoptions [-h server] [-E] -p printer -o option[=value] ...\n"
-" lpoptions [-h server] [-E] -x printer\n"
-msgstr ""
-
+msgstr "Utilização: lpmove job/src dest\n"
+msgid "Usage: lpoptions [-h server] [-E] -d printer\n lpoptions [-h server] [-E] [-p printer] -l\n lpoptions [-h server] [-E] -p printer -o option[=value] ...\n lpoptions [-h server] [-E] -x printer\n"
+msgstr "Utilização: lpoptions [-h server] [-E] -d printer\n lpoptions [-h server] [-E] [-p printer] -l\n lpoptions [-h server] [-E] -p printer -o option[=value] ...\n lpoptions [-h server] [-E] -x printer\n"
msgid "Usage: lppasswd [-g groupname]\n"
-msgstr ""
-
-msgid ""
-"Usage: lppasswd [-g groupname] [username]\n"
-" lppasswd [-g groupname] -a [username]\n"
-" lppasswd [-g groupname] -x [username]\n"
-msgstr ""
-
-msgid ""
-"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr ""
-
+msgstr "Utilização: lppasswd [-g groupname]\n"
+msgid "Usage: lppasswd [-g groupname] [username]\n lppasswd [-g groupname] -a [username]\n lppasswd [-g groupname] -x [username]\n"
+msgstr "Utilização: lppasswd [-g groupname] [username]\n lppasswd [-g groupname] -a [username]\n lppasswd [-g groupname] -x [username]\n"
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr "Utilização: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
msgid "Usage: snmp [host-or-ip-address]\n"
-msgstr ""
-
-#, c-format
+msgstr "Utilização: snmp [host-or-ip-address]\n"
msgid "WARNING: Boolean expected for waiteof option \"%s\"\n"
-msgstr ""
-
+msgstr "WARNING: Booleano esperado para opção waiteof \"%s\"\n"
msgid "WARNING: Couldn't create read channel\n"
-msgstr ""
-
+msgstr "WARNING: Impossível criar canal de leitura\n"
msgid "WARNING: Couldn't create side channel\n"
-msgstr ""
-
+msgstr "WARNING: Impossível criar canal lateral\n"
msgid "WARNING: Failed to read side-channel request!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Falha ao ler pedido de side-channel!\n"
msgid "WARNING: Option \"%s\" cannot be included via IncludeFeature!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: Remote host did not respond with command status byte after %d "
-"seconds!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: Remote host did not respond with control status byte after %d "
-"seconds!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: Remote host did not respond with data status byte after %d "
-"seconds!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Impossível incluir opção \"%s\" via IncludeFeature!\n"
+msgid "WARNING: Remote host did not respond with command status byte after %d seconds!\n"
+msgstr "WARNING: Host remoto não respondeu com byte de estado de comando após %d segundos!\n"
+msgid "WARNING: Remote host did not respond with control status byte after %d seconds!\n"
+msgstr "WARNING: Host remoto não respondeu com byte de estado de controlo após %d segundos!\n"
+msgid "WARNING: Remote host did not respond with data status byte after %d seconds!\n"
+msgstr "WARNING: Host remoto não respondeu com byte de estado de dados após %d segundos!\n"
msgid "WARNING: SCSI command timed out (%d); retrying...\n"
-msgstr ""
-
-msgid ""
-"WARNING: This document does not conform to the Adobe Document Structuring "
-"Conventions and may not print correctly!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Comando SCSI sem resposta (%d); a tentar de novo...\n"
+msgid "WARNING: This document does not conform to the Adobe Document Structuring Conventions and may not print correctly!\n"
+msgstr "WARNING: Este documento não está de acordo com ADSC e pode não ser impresso correctamente!\n"
msgid "WARNING: Unknown choice \"%s\" for option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Escolha desconhecida \"%s\" para opção \"%s\"!\n"
msgid "WARNING: Unknown option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "WARNING: Opção desconhecida \"%s\"!\n"
msgid "WARNING: Unsupported baud rate %s!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"WARNING: recoverable: Network host '%s' is busy; will retry in %d "
-"seconds...\n"
-msgstr ""
-
+msgstr "WARNING: Taxa baud não suportada %s!\n"
+msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n"
+msgstr "WARNING: recuperável: host de rede '%s' ocupado; nova tentativa dentro de %d segundos...\n"
msgid "Warning, no Windows 2000 printer drivers are installed!"
-msgstr ""
-
+msgstr "Aviso, sem controladores de impressora Windows 2000 instalados!"
msgid "Yes"
-msgstr ""
-
-#, c-format
-msgid ""
-"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
-"s:%d%s</A>."
-msgstr ""
-
+msgstr "Sim"
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr "Deve aceder a esta página utilizando o URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
msgid "aborted"
-msgstr ""
-
+msgstr "interrompido"
msgid "canceled"
-msgstr ""
-
+msgstr "cancelado"
msgid "completed"
-msgstr ""
-
-msgid "convert: Use the -f option to specify a file to convert.\n"
-msgstr ""
-
+msgstr "concluído"
msgid "cups-deviced failed to execute."
-msgstr ""
-
+msgstr "cups-deviced falhou a execução."
msgid "cups-driverd failed to execute."
-msgstr ""
-
-#, c-format
+msgstr "cups-driverd falhou a execução."
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsaddsmb: Sem ficheiro PPD para impressora \"%s\" - %s\n"
msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsctl: Opção desconhecida \"%s\"!\n"
msgid "cupsctl: Unknown option \"-%c\"!\n"
-msgstr ""
-
+msgstr "cupsctl: Opção desconhecida \"-%c\"!\n"
msgid "cupsd: Expected config filename after \"-c\" option!\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsd: Nome de ficheiro config esperado após opção \"-c\"!\n"
msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
-msgstr ""
-
-#, c-format
+msgstr "cupsd: Argumento desconhecido \"%s\" - a interromper!\n"
msgid "cupsd: Unknown option \"%c\" - aborting!\n"
-msgstr ""
-
+msgstr "cupsd: Opção desconhecida \"%c\" - a interromper!\n"
msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
-msgstr ""
-
+msgstr "cupsd: suporte launchd(8) não compilado; execução em modo normal.\n"
+msgid "cupsfilter: No filter to convert from %s/%s to %s/%s!\n"
+msgstr "cupsfilter: Sem filtro para converter de %s/%s para %s/%s!\n"
msgid "cupsfilter: Only one filename can be specified!\n"
-msgstr ""
-
+msgstr "cupsfilter: Só pode ser especificado um nome de ficheiro!\n"
+msgid "cupsfilter: Unable to determine MIME type of \"%s\"!\n"
+msgstr "cupsfilter: Impossível determinar tipo MIME de \"%s\"!\n"
+msgid "cupsfilter: Unable to read MIME database from \"%s\"!\n"
+msgstr "cupsfilter: Impossível ler base de dados MIME a partir de \"%s\"!\n"
+msgid "cupsfilter: Unknown destination MIME type %s/%s!\n"
+msgstr "cupsfilter: Destino desconhecido de tipo MIME %s/%s!\n"
msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
-msgstr ""
-
+msgstr "cupstestppd: Opção -q incompatível com opção -v.\n"
msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
-msgstr ""
-
-#, c-format
+msgstr "cupstestppd: Opção -v incompatível com opção -q.\n"
msgid "device for %s/%s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "periférico para %s/%s: %s\n"
msgid "device for %s: %s\n"
-msgstr ""
-
+msgstr "periférico para %s: %s\n"
msgid "held"
-msgstr ""
-
+msgstr "reter"
msgid "help\t\tget help on commands\n"
-msgstr ""
-
+msgstr "help\t\tobter ajuda sobre comandos\n"
msgid "idle"
-msgstr ""
-
+msgstr "inactivo"
msgid "job-printer-uri attribute missing!"
-msgstr ""
-
+msgstr "atributo job-printer-uri inexistente!"
msgid "lpadmin: Class name can only contain printable characters!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de classe só pode ter caracteres imprimíveis!\n"
msgid "lpadmin: Expected PPD after '-P' option!\n"
-msgstr ""
-
+msgstr "lpadmin: PPD esperado após opção '-P'!\n"
msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Permitir/negar:lista de utilizadores esperado após opção '-u'!\n"
msgid "lpadmin: Expected class after '-r' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Classe esperada após opção '-r'!\n"
msgid "lpadmin: Expected class name after '-c' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de classe esperado após opção '-c'!\n"
msgid "lpadmin: Expected description after '-D' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Descrição esperada após opção '-D'!\n"
msgid "lpadmin: Expected device URI after '-v' option!\n"
-msgstr ""
-
+msgstr "lpadmin: URI de periférico esperado após opção '-v'!\n"
msgid "lpadmin: Expected file type(s) after '-I' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Tipo(s) de ficheiro esperados após opção '-I'!\n"
msgid "lpadmin: Expected hostname after '-h' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de host esperado após opção '-h'!\n"
msgid "lpadmin: Expected interface after '-i' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Interface esperada após opção '-i'!\n"
msgid "lpadmin: Expected location after '-L' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Localização esperada após opção '-L'!\n"
msgid "lpadmin: Expected model after '-m' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Modelo esperado após opção '-m'!\n"
msgid "lpadmin: Expected name=value after '-o' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome=valor esperado após opção '-o'!\n"
msgid "lpadmin: Expected printer after '-p' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Impressora esperada após opção '-p'!\n"
msgid "lpadmin: Expected printer name after '-d' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Nome de impressora esperado após opção '-d'!\n"
msgid "lpadmin: Expected printer or class after '-x' option!\n"
-msgstr ""
-
+msgstr "lpadmin: Impressora ou classe esperadas após opção '-x'!\n"
msgid "lpadmin: No member names were seen!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Sem nomes de membro detectados!\n"
msgid "lpadmin: Printer %s is already a member of class %s.\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impressora %s já é membro da classe %s.\n"
msgid "lpadmin: Printer %s is not a member of class %s.\n"
-msgstr ""
-
+msgstr "lpadmin: Impressora %s não é membro da classe %s.\n"
msgid "lpadmin: Printer name can only contain printable characters!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to add a printer to the class:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Nome de impressora só pode ter caracteres imprimíveis!\n"
+msgid "lpadmin: Unable to add a printer to the class:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível adicionar impressora à classe:\n Especifique primeiro um nome de impressora!\n"
msgid "lpadmin: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível ligar ao servidor: %s\n"
msgid "lpadmin: Unable to create temporary file - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível criar ficheiro temporário - %s\n"
msgid "lpadmin: Unable to create temporary file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível criar ficheiro temporário: %s\n"
msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível abrir ficheiro PPD \"%s\" - %s\n"
msgid "lpadmin: Unable to open file \"%s\": %s\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to remove a printer from the class:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the PPD file:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the device URI:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the interface script or PPD file:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the interface script:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the printer description:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the printer location:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-msgid ""
-"lpadmin: Unable to set the printer options:\n"
-" You must specify a printer name first!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Impossível abrir ficheiro \"%s\": %s\n"
+msgid "lpadmin: Unable to remove a printer from the class:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível remover impressora da classe:\n Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the PPD file:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar ficheiro PPD:\n Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the device URI:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar URI de periférico:\n Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the interface script or PPD file:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar script de interface ou ficheiro PPD:\n Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the interface script:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar script de interface:\n Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the printer description:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar descrição de impressora:\n Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the printer location:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar localização de impressora:\n Especifique primeiro um nome de impressora!\n"
+msgid "lpadmin: Unable to set the printer options:\n You must specify a printer name first!\n"
+msgstr "lpadmin: Impossível especificar opções de impressora:\n Especifique primeiro um nome de impressora!\n"
msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Opção permitir/negar desconhecida \"%s\"!\n"
msgid "lpadmin: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpadmin: Argumento desconhecido '%s'!\n"
msgid "lpadmin: Unknown option '%c'!\n"
-msgstr ""
-
+msgstr "lpadmin: Opção desconhecida '%c'!\n"
msgid "lpadmin: Warning - content type list ignored!\n"
-msgstr ""
-
+msgstr "lpadmin: Aviso - lista de tipo de conteúdo ignorada!\n"
msgid "lpc> "
-msgstr ""
-
-#, c-format
+msgstr "lpc> "
msgid "lpinfo: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpinfo: Impossível ligar ao servidor: %s\n"
msgid "lpinfo: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpinfo: Argumento desconhecido '%s'!\n"
msgid "lpinfo: Unknown option '%c'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpinfo: Opção desconhecida '%c'!\n"
msgid "lpmove: Unable to connect to server: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpmove: Impossível ligar ao servidor: %s\n"
msgid "lpmove: Unknown argument '%s'!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpmove: Argumento desconhecido '%s'!\n"
msgid "lpmove: Unknown option '%c'!\n"
-msgstr ""
-
+msgstr "lpmove: Opção desconhecida '%c'!\n"
msgid "lpoptions: No printers!?!\n"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Sem impressoras!?!\n"
msgid "lpoptions: Unable to add printer or instance: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Impossível adicionar impressora ou instância: %s\n"
msgid "lpoptions: Unable to get PPD file for %s: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lpoptions: Impossível obter ficheiro PPD para %s: %s\n"
msgid "lpoptions: Unable to open PPD file for %s!\n"
-msgstr ""
-
+msgstr "lpoptions: Impossível abrir ficheiro PPD para %s!\n"
msgid "lpoptions: Unknown printer or class!\n"
-msgstr ""
-
+msgstr "lpoptions: Impressora ou classe desconhecidas!\n"
msgid "lppasswd: Only root can add or delete passwords!\n"
-msgstr ""
-
+msgstr "lppasswd: Só raiz pode adicionar ou apagar palavras-passe!\n"
msgid "lppasswd: Password file busy!\n"
-msgstr ""
-
+msgstr "lppasswd: Ficheiro de palavra-passe ocupado!\n"
msgid "lppasswd: Password file not updated!\n"
-msgstr ""
-
+msgstr "lppasswd: Ficheiro de palavra-passe não actualizado!\n"
msgid "lppasswd: Sorry, password doesn't match!\n"
-msgstr ""
-
-msgid ""
-"lppasswd: Sorry, password rejected.\n"
-"Your password must be at least 6 characters long, cannot contain\n"
-"your username, and must contain at least one letter and number.\n"
-msgstr ""
-
+msgstr "lppasswd: Palavra-passe não corresponde!\n"
+msgid "lppasswd: Sorry, password rejected.\nYour password must be at least 6 characters long, cannot contain\nyour username, and must contain at least one letter and number.\n"
+msgstr "lppasswd: Palavra-passe rejeitada.\nA palavra-passe deve ter o mínimo de 6 caracteres, sem conter\no nome de utilizador, e deve ter pelo menos uma letra e um número.\n"
msgid "lppasswd: Sorry, passwords don't match!\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Palavras-passe não correspondem!\n"
msgid "lppasswd: Unable to copy password string: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Impossível copiar cadeia de palavra-passe: %s\n"
msgid "lppasswd: Unable to open password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Impossível abrir ficheiro de palavra-passe: %s\n"
msgid "lppasswd: Unable to write to password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: Impossível escrever no ficheiro de palavra-passe: %s\n"
msgid "lppasswd: failed to backup old password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: falha ao efectuar cópia de segurança de ficheiro de palavra-passe antigo: %s\n"
msgid "lppasswd: failed to rename password file: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "lppasswd: falha ao alterar nome de ficheiro de palavra-passe: %s\n"
msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
-msgstr ""
-
+msgstr "lppasswd: utilizador \"%s\" e grupo \"%s\" não existem.\n"
msgid "lprm: Unable to contact server!\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"lpstat: error - %s environment variable names non-existent destination \"%s"
-"\"!\n"
-msgstr ""
-
-#, c-format
+msgstr "lprm: Impossível contactar servidor!\n"
+msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lpstat: erro - nomes de variáveis de ambiente %s inexistentes no destino \"%s\"!\n"
msgid "members of class %s:\n"
-msgstr ""
-
+msgstr "membros da classe %s:\n"
msgid "no entries\n"
-msgstr ""
-
+msgstr "sem entradas\n"
msgid "no system default destination\n"
-msgstr ""
-
+msgstr "sem destino predefinido de sistema\n"
msgid "notify-events not specified!"
-msgstr ""
-
-#, c-format
+msgstr "notify-events não especificados!"
msgid "notify-recipient-uri URI \"%s\" uses unknown scheme!"
-msgstr ""
-
-#, c-format
+msgstr "notify-recipient-uri URI \"%s\" utiliza esquema desconhecido!"
msgid "notify-subscription-id %d no good!"
-msgstr ""
-
-#, c-format
+msgstr "notify-subscription-id %d incorrecto!"
msgid "open of %s failed: %s"
-msgstr ""
-
+msgstr "abertura de %s falhou: %s"
msgid "pending"
-msgstr ""
-
-#, c-format
+msgstr "pendente"
msgid "printer %s disabled since %s -\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s desactivada desde %s -\n"
msgid "printer %s is idle. enabled since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s inactiva. activada desde %s\n"
msgid "printer %s now printing %s-%d. enabled since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s agora a imprimir %s-%d. activada desde %s\n"
msgid "printer %s/%s disabled since %s -\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s/%s desactivada desde %s -\n"
msgid "printer %s/%s is idle. enabled since %s\n"
-msgstr ""
-
-#, c-format
+msgstr "impressora %s/%s inactiva. activada desde %s\n"
msgid "printer %s/%s now printing %s-%d. enabled since %s\n"
-msgstr ""
-
+msgstr "impressora %s/%s agora a imprimir %s-%d. activada desde %s\n"
msgid "processing"
-msgstr ""
-
-#, c-format
+msgstr "a processar"
msgid "request id is %s-%d (%d file(s))\n"
-msgstr ""
-
+msgstr "id de pedido é %s-%d (%d ficheiro(s))\n"
msgid "scheduler is not running\n"
-msgstr ""
-
+msgstr "programador não está em execução\n"
msgid "scheduler is running\n"
-msgstr ""
-
-#, c-format
+msgstr "programador em execução\n"
msgid "stat of %s failed: %s"
-msgstr ""
-
+msgstr "estatística de %s falhou: %s"
msgid "status\t\tshow status of daemon and queue\n"
-msgstr ""
-
+msgstr "status\t\tmostra estado de daemon e fila\n"
msgid "stopped"
-msgstr ""
-
-#, c-format
+msgstr "parado"
msgid "system default destination: %s\n"
-msgstr ""
-
-#, c-format
+msgstr "destino predefinido de sistema: %s\n"
msgid "system default destination: %s/%s\n"
-msgstr ""
-
+msgstr "destino predefinido de sistema: %s/%s\n"
msgid "unknown"
-msgstr ""
-
+msgstr "desconhecido"
msgid "untitled"
-msgstr ""
+msgstr "sem nome"
diff --git a/locale/cups_pt_BR.po b/locale/cups_pt_BR.po
index fe31b954d..342eb0533 100644
--- a/locale/cups_pt_BR.po
+++ b/locale/cups_pt_BR.po
@@ -85,7 +85,7 @@ msgstr " REF: Página 48-49, seção 5.2.\n"
msgid " REF: Pages 52-54, section 5.2.\n"
msgstr " REF: Página 52-54, seção 5.2.\n"
msgid " %-39.39s %.0f bytes\n"
-msgstr " %-39.39s %.de bytes\n"
+msgstr " %-39.39s %.0f bytes\n"
msgid " PASS Default%s\n"
msgstr " PASS Padrão%s\n"
msgid " PASS DefaultImageableArea\n"
@@ -495,7 +495,7 @@ msgstr "opção + escolha inválida na linha %d!"
msgid "Bad page-ranges values %d-%d."
msgstr "Valores de page-ranges inválidos %d-%d."
msgid "Bad port-monitor \"%s\"!"
-msgstr "port-monitor inválido "
+msgstr "port-monitor %s inválido"
msgid "Bad printer-state value %d!"
msgstr "Valor de printer-state inválido %d!"
msgid "Bad request version number %d.%d!"
diff --git a/locale/cups_sv.po b/locale/cups_sv.po
index 0c26868fd..a65201ed4 100644
--- a/locale/cups_sv.po
+++ b/locale/cups_sv.po
@@ -665,11 +665,11 @@ msgstr "ERROR: Okänd filordning \”%s\”\n"
msgid "ERROR: Unknown format character \"%c\"\n"
msgstr "ERROR: Okänt formattecken \”%c\”\n"
msgid "ERROR: Unknown option \"%s\" with value \"%s\"!\n"
-msgstr "ERROR: Okänt alternativ \”%c\” med värdet ”%s”!\n"
+msgstr "ERROR: Okänt alternativ \”%s\” med värdet ”%s”!\n"
msgid "ERROR: Unknown print mode \"%s\"\n"
-msgstr "%s: Okänt utskriftsläge \”%s\”!\n"
+msgstr "ERROR: Okänt utskriftsläge \”%s\”!\n"
msgid "ERROR: Unknown version option value \"%s\"!\n"
-msgstr "%s: Okänt versionsalternativvärde \”%s\”!\n"
+msgstr "ERROR: Okänt versionsalternativvärde \”%s\”!\n"
msgid "ERROR: Unsupported brightness value %s, using brightness=100!\n"
msgstr "ERROR: Värdet %s för ljusstyrka stöds inte, använder brightness=100!\n"
msgid "ERROR: Unsupported gamma value %s, using gamma=1000!\n"
@@ -1249,7 +1249,7 @@ msgstr "cups-driverd misslyckades med att starta."
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
msgstr "cupsaddsmb: Ingen PPD-fil för skrivaren \”%s\” - %s\n"
msgid "cupsctl: Unknown option \"%s\"!\n"
-msgstr "cupsctl: Okänt alternativ \”%c\”!\n"
+msgstr "cupsctl: Okänt alternativ \”%s\”!\n"
msgid "cupsctl: Unknown option \"-%c\"!\n"
msgstr "cupsctl: Okänt alternativ \”%c\”!\n"
msgid "cupsd: Expected config filename after \"-c\" option!\n"
diff --git a/locale/cups_zh.po b/locale/cups_zh.po
index 6cc391f40..54b6676e7 100644
--- a/locale/cups_zh.po
+++ b/locale/cups_zh.po
@@ -472,7 +472,7 @@ msgid ""
" **FAIL** Bad %s choice %s!\n"
" REF: Page 122, section 5.17\n"
msgstr ""
-" **失败** 错误的 %s 选择!\n"
+" **失败** 错误的 %s %s 选择!\n"
" REF: 页 122,节 5.17。\n"
#, c-format
@@ -480,7 +480,7 @@ msgid ""
" **FAIL** Bad %s choice %s!\n"
" REF: Page 84, section 5.9\n"
msgstr ""
-" **失败** 错误的 %s 选择!\n"
+" **失败** 错误的 %s %s 选择!\n"
" REF: 页 84,节 5.9。\n"
#, c-format
diff --git a/locale/cups_zh_TW.po b/locale/cups_zh_TW.po
index 3c2234b11..306d60c1f 100644
--- a/locale/cups_zh_TW.po
+++ b/locale/cups_zh_TW.po
@@ -1549,7 +1549,7 @@ msgstr "ERROR: 不支援的光度值 %s,使用光度=1000!\n"
#, c-format
msgid "ERROR: Unsupported number-up value %d, using number-up=1!\n"
-msgstr "ERROR: 不支援的 number-up 值 %s,使用 number-up=1!\n"
+msgstr "ERROR: 不支援的 number-up 值 %d,使用 number-up=1!\n"
#, c-format
msgid ""
@@ -1652,7 +1652,7 @@ msgstr "INFO: 嘗試為印表機“%2$s”連接主機“%1$s”\n"
#, c-format
msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr "INFO: 嘗試在“%d”埠上連接主機“%s”\n"
+msgstr "INFO: 嘗試在“%2$d”埠上連接主機“%1$s”\n"
msgid "INFO: Canceling print job...\n"
msgstr "INFO: 正在取消列印工作⋯\n"
@@ -1663,7 +1663,7 @@ msgstr "INFO: 已連接“%s”⋯\n"
#, c-format
msgid "INFO: Connecting to %s on port %d...\n"
-msgstr "INFO: 正在連接“%d”埠上的“%s”⋯\n"
+msgstr "INFO: 正在連接“%2$d”埠上的“%1$s”⋯\n"
msgid "INFO: Control file sent successfully\n"
msgstr "INFO: 已成功傳送控制檔案\n"
diff --git a/monitor/bcp.c b/monitor/bcp.c
index 16054d90b..cbb2042a2 100644
--- a/monitor/bcp.c
+++ b/monitor/bcp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: bcp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: bcp.c 6802 2007-08-16 18:44:46Z mike $"
*
* TBCP port monitor for the Common UNIX Printing System (CUPS).
*
@@ -16,6 +16,9 @@
*
* Contents:
*
+ * main() - Main entry...
+ * psgets() - Get a line from a file.
+ * pswrite() - Write data from a file.
*/
/*
@@ -248,9 +251,19 @@ pswrite(const char *buf, /* I - Buffer to write */
for (count = bytes; count > 0; count --, buf ++)
switch (*buf)
{
+ case 0x04 : /* CTRL-D */
+ if (bytes == 1)
+ {
+ /*
+ * Don't quote the last CTRL-D...
+ */
+
+ putchar(0x04);
+ break;
+ }
+
case 0x01 : /* CTRL-A */
case 0x03 : /* CTRL-C */
- case 0x04 : /* CTRL-D */
case 0x05 : /* CTRL-E */
case 0x11 : /* CTRL-Q */
case 0x13 : /* CTRL-S */
@@ -273,5 +286,5 @@ pswrite(const char *buf, /* I - Buffer to write */
/*
- * End of "$Id: bcp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: bcp.c 6802 2007-08-16 18:44:46Z mike $".
*/
diff --git a/monitor/tbcp.c b/monitor/tbcp.c
index 55039e4c2..a310d6617 100644
--- a/monitor/tbcp.c
+++ b/monitor/tbcp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: tbcp.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: tbcp.c 6802 2007-08-16 18:44:46Z mike $"
*
* TBCP port monitor for the Common UNIX Printing System (CUPS).
*
@@ -120,11 +120,10 @@ main(int argc, /* I - Number of command-line args */
else
{
/*
- * No PJL stuff, add it...
+ * No PJL stuff, just add the UEL...
*/
- puts("\033%-12345X@PJL");
- puts("@PJL ENTER LANGUAGE = POSTSCRIPT");
+ fputs("\033%-12345X", stdout);
}
/*
@@ -244,9 +243,19 @@ pswrite(const char *buf, /* I - Buffer to write */
for (count = bytes; count > 0; count --, buf ++)
switch (*buf)
{
+ case 0x04 : /* CTRL-D */
+ if (bytes == 1)
+ {
+ /*
+ * Don't quote the last CTRL-D...
+ */
+
+ putchar(0x04);
+ break;
+ }
+
case 0x01 : /* CTRL-A */
case 0x03 : /* CTRL-C */
- case 0x04 : /* CTRL-D */
case 0x05 : /* CTRL-E */
case 0x11 : /* CTRL-Q */
case 0x13 : /* CTRL-S */
@@ -270,5 +279,5 @@ pswrite(const char *buf, /* I - Buffer to write */
/*
- * End of "$Id: tbcp.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: tbcp.c 6802 2007-08-16 18:44:46Z mike $".
*/
diff --git a/packaging/cups.list.in b/packaging/cups.list.in
index 44ef44c62..37cddc03c 100644
--- a/packaging/cups.list.in
+++ b/packaging/cups.list.in
@@ -1,5 +1,5 @@
#
-# "$Id: cups.list.in 6716 2007-07-24 20:46:39Z mike $"
+# "$Id: cups.list.in 6777 2007-08-08 17:43:14Z mike $"
#
# ESP Package Manager (EPM) file list for the Common UNIX Printing
# System (CUPS).
@@ -723,5 +723,5 @@ f 0644 root sys $XINETD/cups-lpd init/cups-lpd
%subpackage
#
-# End of "$Id: cups.list.in 6716 2007-07-24 20:46:39Z mike $".
+# End of "$Id: cups.list.in 6777 2007-08-08 17:43:14Z mike $".
#
diff --git a/packaging/cups.spec.in b/packaging/cups.spec.in
index eb5a6d86c..b3bb81d88 100644
--- a/packaging/cups.spec.in
+++ b/packaging/cups.spec.in
@@ -1,5 +1,5 @@
#
-# "$Id: cups.spec.in 6716 2007-07-24 20:46:39Z mike $"
+# "$Id: cups.spec.in 6778 2007-08-08 19:27:51Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
@@ -627,5 +627,5 @@ rm -rf $RPM_BUILD_ROOT
#
-# End of "$Id: cups.spec.in 6716 2007-07-24 20:46:39Z mike $".
+# End of "$Id: cups.spec.in 6778 2007-08-08 19:27:51Z mike $".
#
diff --git a/scheduler/Makefile b/scheduler/Makefile
index fc4957618..08752d28f 100644
--- a/scheduler/Makefile
+++ b/scheduler/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile 6692 2007-07-19 19:28:16Z mike $"
+# "$Id: Makefile 6802 2007-08-16 18:44:46Z mike $"
#
# Scheduler Makefile for the Common UNIX Printing System (CUPS).
#
@@ -134,12 +134,12 @@ install: all
else \
echo Creating $(SERVERROOT)/ssl...; \
$(INSTALL_DIR) -m 700 $(SERVERROOT)/ssl; \
- -chgrp $(CUPS_GROUP) $(SERVERROOT)/ssl; \
+ chgrp $(CUPS_GROUP) $(SERVERROOT)/ssl || true; \
echo Creating $(STATEDIR)...; \
$(INSTALL_DIR) -m 755 $(STATEDIR); \
echo Creating $(STATEDIR)/certs...; \
$(INSTALL_DIR) -m 511 $(STATEDIR)/certs; \
- chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs; \
+ chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs || true; \
fi
echo Creating $(LOGDIR)...
$(INSTALL_DIR) -m 755 $(LOGDIR)
@@ -324,5 +324,5 @@ include Dependencies
#
-# End of "$Id: Makefile 6692 2007-07-19 19:28:16Z mike $".
+# End of "$Id: Makefile 6802 2007-08-16 18:44:46Z mike $".
#
diff --git a/scheduler/auth.c b/scheduler/auth.c
index 03f875be6..3f5f72478 100644
--- a/scheduler/auth.c
+++ b/scheduler/auth.c
@@ -1,5 +1,5 @@
/*
- * "$Id: auth.c 6758 2007-08-02 00:13:44Z mike $"
+ * "$Id: auth.c 6949 2007-09-12 21:33:23Z mike $"
*
* Authorization routines for the Common UNIX Printing System (CUPS).
*
@@ -83,6 +83,9 @@
extern const char *cssmErrorString(int error);
# endif /* HAVE_SECBASEPRIV_H */
#endif /* HAVE_AUTHORIZATION_H */
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif /* HAVE_SYS_PARAM_H */
#ifdef HAVE_SYS_UCRED_H
# include <sys/ucred.h>
typedef struct xucred cupsd_ucred_t;
@@ -329,7 +332,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
int type; /* Authentication type */
const char *authorization; /* Pointer into Authorization string */
char *ptr, /* Pointer into string */
- username[65], /* Username string */
+ username[256], /* Username string */
password[33]; /* Password string */
const char *localuser; /* Certificate username */
char nonce[HTTP_MAX_VALUE], /* Nonce value from client */
@@ -372,28 +375,6 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
else
type = con->best->type;
}
- else if (!strncmp(con->uri, "/printers/", 10) ||
- !strncmp(con->uri, "/classes/", 9))
- {
- /*
- * Lookup the printer or class and see what kind of authentication it
- * needs...
- */
-
- cupsd_printer_t *p; /* Printer or class */
-
-
- if (!strncmp(con->uri, "/printers/", 10))
- p = cupsdFindDest(con->uri + 10);
- else
- p = cupsdFindDest(con->uri + 9);
-
- if (p && p->num_auth_info_required > 0 &&
- !strcmp(p->auth_info_required[0], "negotiate"))
- type = AUTH_NEGOTIATE;
- else
- type = DefaultAuthType;
- }
else
type = DefaultAuthType;
@@ -936,7 +917,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
username);
}
#ifdef HAVE_GSSAPI
- else if (!strncmp(authorization, "Negotiate", 9) && type == AUTH_NEGOTIATE)
+ else if (!strncmp(authorization, "Negotiate", 9))
{
int len; /* Length of authorization string */
gss_cred_id_t server_creds; /* Server credentials */
@@ -1064,8 +1045,6 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
gss_release_name(&minor_status, &client_name);
strlcpy(username, output_token.value, sizeof(username));
- if ((ptr = strchr(username, '@')) != NULL)
- *ptr = '\0'; /* Strip @KDC from the username */
cupsdLogMessage(CUPSD_LOG_DEBUG,
"cupsdAuthorize: Authorized as %s using Negotiate",
@@ -1818,7 +1797,9 @@ cupsdIsAuthorized(cupsd_client_t *con, /* I - Connection */
unsigned address[4]; /* Authorization address */
cupsd_location_t *best; /* Best match for location so far */
int hostlen; /* Length of hostname */
- const char *username; /* Username to authorize */
+ char username[256], /* Username to authorize */
+ ownername[256], /* Owner name to authorize */
+ *ptr; /* Pointer into username */
struct passwd *pw; /* User password data */
static const char * const levels[] = /* Auth levels */
{
@@ -1998,7 +1979,7 @@ cupsdIsAuthorized(cupsd_client_t *con, /* I - Connection */
cupsdLogMessage(CUPSD_LOG_DEBUG,
"cupsdIsAuthorized: requesting-user-name=\"%s\"",
attr->values[0].string.text);
- username = attr->values[0].string.text;
+ strlcpy(username, attr->values[0].string.text, sizeof(username));
}
else if (best->satisfy == AUTH_SATISFY_ALL || auth == AUTH_DENY)
return (HTTP_UNAUTHORIZED); /* Non-anonymous needs user/pass */
@@ -2022,7 +2003,7 @@ cupsdIsAuthorized(cupsd_client_t *con, /* I - Connection */
return (HTTP_OK); /* unless overridden with Satisfy */
}
- username = con->username;
+ strlcpy(username, con->username, sizeof(username));
}
/*
@@ -2034,6 +2015,23 @@ cupsdIsAuthorized(cupsd_client_t *con, /* I - Connection */
return (HTTP_OK);
/*
+ * Strip any @domain or @KDC from the username and owner...
+ */
+
+ if ((ptr = strchr(username, '@')) != NULL)
+ *ptr = '\0';
+
+ if (owner)
+ {
+ strlcpy(ownername, owner, sizeof(ownername));
+
+ if ((ptr = strchr(ownername, '@')) != NULL)
+ *ptr = '\0';
+ }
+ else
+ ownername[0] = '\0';
+
+ /*
* Get the user info...
*/
@@ -2088,7 +2086,7 @@ cupsdIsAuthorized(cupsd_client_t *con, /* I - Connection */
for (i = 0; i < best->num_names; i ++)
{
if (!strcasecmp(best->names[i], "@OWNER") && owner &&
- !strcasecmp(username, owner))
+ !strcasecmp(username, ownername))
return (HTTP_OK);
else if (!strcasecmp(best->names[i], "@SYSTEM"))
{
@@ -2670,5 +2668,5 @@ to64(char *s, /* O - Output string */
/*
- * End of "$Id: auth.c 6758 2007-08-02 00:13:44Z mike $".
+ * End of "$Id: auth.c 6949 2007-09-12 21:33:23Z mike $".
*/
diff --git a/scheduler/auth.h b/scheduler/auth.h
index 1eb5c422e..e3b83f3a8 100644
--- a/scheduler/auth.h
+++ b/scheduler/auth.h
@@ -1,5 +1,5 @@
/*
- * "$Id: auth.h 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: auth.h 6780 2007-08-08 20:50:42Z mike $"
*
* Authorization definitions for the Common UNIX Printing System (CUPS)
* scheduler.
@@ -151,5 +151,5 @@ extern http_status_t cupsdIsAuthorized(cupsd_client_t *con, const char *owner);
/*
- * End of "$Id: auth.h 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: auth.h 6780 2007-08-08 20:50:42Z mike $".
*/
diff --git a/scheduler/client.c b/scheduler/client.c
index f8316a79e..f0a1225e5 100644
--- a/scheduler/client.c
+++ b/scheduler/client.c
@@ -1,5 +1,5 @@
/*
- * "$Id: client.c 6758 2007-08-02 00:13:44Z mike $"
+ * "$Id: client.c 6799 2007-08-15 19:33:36Z mike $"
*
* Client routines for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -3228,12 +3228,15 @@ get_file(cupsd_client_t *con, /* I - Client connection */
int status; /* Status of filesystem calls */
char *ptr; /* Pointer info filename */
int plen; /* Remaining length after pointer */
+ char language[7]; /* Language subdirectory, if any */
/*
* Figure out the real filename...
*/
+ language[0] = '\0';
+
if (!strncmp(con->uri, "/ppd/", 5))
snprintf(filename, len, "%s%s", ServerRoot, con->uri);
else if (!strncmp(con->uri, "/rss/", 5) && !strchr(con->uri + 5, '/'))
@@ -3252,8 +3255,10 @@ get_file(cupsd_client_t *con, /* I - Client connection */
return (NULL);
}
else if (con->language)
- snprintf(filename, len, "%s/%s%s", DocumentRoot, con->language->language,
- con->uri);
+ {
+ snprintf(language, sizeof(language), "/%s", con->language->language);
+ snprintf(filename, len, "%s%s%s", DocumentRoot, language, con->uri);
+ }
else
snprintf(filename, len, "%s%s", DocumentRoot, con->uri);
@@ -3265,7 +3270,7 @@ get_file(cupsd_client_t *con, /* I - Client connection */
* then fallback to the default one...
*/
- if ((status = stat(filename, filestats)) != 0 && con->language &&
+ if ((status = stat(filename, filestats)) != 0 && language[0] &&
strncmp(con->uri, "/ppd/", 5) &&
strncmp(con->uri, "/admin/conf/", 12) &&
strncmp(con->uri, "/admin/log/", 11))
@@ -3274,11 +3279,8 @@ get_file(cupsd_client_t *con, /* I - Client connection */
* Drop the country code...
*/
- char ll[3]; /* Short language name */
-
-
- strlcpy(ll, con->language->language, sizeof(ll));
- snprintf(filename, len, "%s/%s%s", DocumentRoot, ll, con->uri);
+ language[3] = '\0';
+ snprintf(filename, len, "%s%s%s", DocumentRoot, language, con->uri);
if ((ptr = strchr(filename, '?')) != NULL)
*ptr = '\0';
@@ -3289,6 +3291,7 @@ get_file(cupsd_client_t *con, /* I - Client connection */
* Drop the language prefix and try the root directory...
*/
+ language[0] = '\0';
snprintf(filename, len, "%s%s", DocumentRoot, con->uri);
if ((ptr = strchr(filename, '?')) != NULL)
@@ -3304,52 +3307,86 @@ get_file(cupsd_client_t *con, /* I - Client connection */
if (!status && S_ISDIR(filestats->st_mode))
{
- if (filename[strlen(filename) - 1] != '/')
- strlcat(filename, "/", len);
+ /*
+ * Make sure the URI ends with a slash...
+ */
- ptr = filename + strlen(filename);
- plen = len - (ptr - filename);
+ if (con->uri[strlen(con->uri) - 1] != '/')
+ strlcat(con->uri, "/", sizeof(con->uri));
- strlcpy(ptr, "index.html", plen);
- status = stat(filename, filestats);
+ /*
+ * Find the directory index file, trying every language...
+ */
-#ifdef HAVE_JAVA
- if (status)
+ do
{
- strlcpy(ptr, "index.class", plen);
+ if (status && language[0])
+ {
+ /*
+ * Try a different language subset...
+ */
+
+ if (language[3])
+ language[0] = '\0'; /* Strip country code */
+ else
+ language[0] = '\0'; /* Strip language */
+ }
+
+ /*
+ * Look for the index file...
+ */
+
+ snprintf(filename, len, "%s%s%s", DocumentRoot, language, con->uri);
+
+ if ((ptr = strchr(filename, '?')) != NULL)
+ *ptr = '\0';
+
+ ptr = filename + strlen(filename);
+ plen = len - (ptr - filename);
+
+ strlcpy(ptr, "index.html", plen);
status = stat(filename, filestats);
- }
+
+#ifdef HAVE_JAVA
+ if (status)
+ {
+ strlcpy(ptr, "index.class", plen);
+ status = stat(filename, filestats);
+ }
#endif /* HAVE_JAVA */
#ifdef HAVE_PERL
- if (status)
- {
- strlcpy(ptr, "index.pl", plen);
- status = stat(filename, filestats);
- }
+ if (status)
+ {
+ strlcpy(ptr, "index.pl", plen);
+ status = stat(filename, filestats);
+ }
#endif /* HAVE_PERL */
#ifdef HAVE_PHP
- if (status)
- {
- strlcpy(ptr, "index.php", plen);
- status = stat(filename, filestats);
- }
+ if (status)
+ {
+ strlcpy(ptr, "index.php", plen);
+ status = stat(filename, filestats);
+ }
#endif /* HAVE_PHP */
#ifdef HAVE_PYTHON
- if (status)
- {
- strlcpy(ptr, "index.pyc", plen);
- status = stat(filename, filestats);
- }
+ if (status)
+ {
+ strlcpy(ptr, "index.pyc", plen);
+ status = stat(filename, filestats);
+ }
- if (status)
- {
- strlcpy(ptr, "index.py", plen);
- status = stat(filename, filestats);
- }
+ if (status)
+ {
+ strlcpy(ptr, "index.py", plen);
+ status = stat(filename, filestats);
+ }
#endif /* HAVE_PYTHON */
+
+ }
+ while (status && language[0]);
}
cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_file: %d filename=%s size=%d",
@@ -4577,5 +4614,5 @@ write_pipe(cupsd_client_t *con) /* I - Client connection */
/*
- * End of "$Id: client.c 6758 2007-08-02 00:13:44Z mike $".
+ * End of "$Id: client.c 6799 2007-08-15 19:33:36Z mike $".
*/
diff --git a/scheduler/client.h b/scheduler/client.h
index f3c0f3a32..baeef5f65 100644
--- a/scheduler/client.h
+++ b/scheduler/client.h
@@ -1,5 +1,5 @@
/*
- * "$Id: client.h 6758 2007-08-02 00:13:44Z mike $"
+ * "$Id: client.h 6949 2007-09-12 21:33:23Z mike $"
*
* Client definitions for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -30,7 +30,7 @@ struct cupsd_client_s
time_t start; /* Request start time */
http_state_t operation; /* Request operation */
off_t bytes; /* Bytes transferred for this request */
- char username[33], /* Username from Authorization: line */
+ char username[256], /* Username from Authorization: line */
password[33], /* Password from Authorization: line */
uri[HTTP_MAX_URI],
/* Localized URL/URI for GET/PUT */
@@ -131,5 +131,5 @@ extern void cupsdWriteClient(cupsd_client_t *con);
/*
- * End of "$Id: client.h 6758 2007-08-02 00:13:44Z mike $".
+ * End of "$Id: client.h 6949 2007-09-12 21:33:23Z mike $".
*/
diff --git a/scheduler/conf.c b/scheduler/conf.c
index 26d6037bf..b081c3f9d 100644
--- a/scheduler/conf.c
+++ b/scheduler/conf.c
@@ -1,5 +1,5 @@
/*
- * "$Id: conf.c 6746 2007-07-30 16:47:10Z mike $"
+ * "$Id: conf.c 6783 2007-08-10 19:48:57Z mike $"
*
* Configuration routines for the Common UNIX Printing System (CUPS).
*
@@ -3352,5 +3352,5 @@ read_policy(cups_file_t *fp, /* I - Configuration file */
/*
- * End of "$Id: conf.c 6746 2007-07-30 16:47:10Z mike $".
+ * End of "$Id: conf.c 6783 2007-08-10 19:48:57Z mike $".
*/
diff --git a/scheduler/cups-driverd.c b/scheduler/cups-driverd.c
index 1ed66c8a9..5f242447a 100644
--- a/scheduler/cups-driverd.c
+++ b/scheduler/cups-driverd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cups-driverd.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cups-driverd.c 6762 2007-08-02 18:05:03Z mike $"
*
* PPD/driver support for the Common UNIX Printing System (CUPS).
*
@@ -1702,5 +1702,5 @@ load_drivers(void)
/*
- * End of "$Id: cups-driverd.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cups-driverd.c 6762 2007-08-02 18:05:03Z mike $".
*/
diff --git a/scheduler/cups-lpd.c b/scheduler/cups-lpd.c
index 5359fb9b5..360ceb659 100644
--- a/scheduler/cups-lpd.c
+++ b/scheduler/cups-lpd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cups-lpd.c 6723 2007-07-25 17:29:58Z mike $"
+ * "$Id: cups-lpd.c 6781 2007-08-08 21:09:31Z mike $"
*
* Line Printer Daemon interface for the Common UNIX Printing System (CUPS).
*
@@ -1702,5 +1702,5 @@ smart_gets(char *s, /* I - Pointer to line buffer */
/*
- * End of "$Id: cups-lpd.c 6723 2007-07-25 17:29:58Z mike $".
+ * End of "$Id: cups-lpd.c 6781 2007-08-08 21:09:31Z mike $".
*/
diff --git a/scheduler/cupsfilter.c b/scheduler/cupsfilter.c
index f69aa820f..713a0f1cd 100644
--- a/scheduler/cupsfilter.c
+++ b/scheduler/cupsfilter.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cupsfilter.c 6695 2007-07-19 21:59:30Z mike $"
+ * "$Id: cupsfilter.c 6816 2007-08-20 20:16:00Z mike $"
*
* CUPS filtering program for the Common UNIX Printing System (CUPS).
*
@@ -76,8 +76,9 @@ static int exec_filter(const char *filter, char **argv, char **envp,
int infd, int outfd);
static int exec_filters(cups_array_t *filters, const char *infile,
const char *outfile, const char *ppdfile,
- const char *user, const char *title,
- int num_options, cups_option_t *options);
+ const char *printer, const char *user,
+ const char *title, int num_options,
+ cups_option_t *options);
static int open_pipe(int *fds);
static int read_cupsd_conf(const char *filename);
static void set_string(char **s, const char *val);
@@ -396,8 +397,9 @@ main(int argc, /* I - Number of command-line args */
* Do it!
*/
- status = exec_filters(filters, infile, outfile, ppdfile, user, title,
- num_options, options);
+ status = exec_filters(filters, infile, outfile, ppdfile,
+ !strcmp(command, "convert") ? "tofile" : "cupsfilter",
+ user, title, num_options, options);
/*
* Remove files as needed, then exit...
@@ -590,6 +592,7 @@ exec_filters(cups_array_t *filters, /* I - Array of filters to run */
const char *infile, /* I - File to filter */
const char *outfile, /* I - File to create */
const char *ppdfile, /* I - PPD file, if any */
+ const char *printer, /* I - Printer name */
const char *user, /* I - Username */
const char *title, /* I - Job title */
int num_options, /* I - Number of filter options */
@@ -643,17 +646,24 @@ exec_filters(cups_array_t *filters, /* I - Array of filters to run */
snprintf(ppd, sizeof(ppd), "PPD=%s", temp);
else
#ifdef __APPLE__
+ if (!access("/System/Library/Frameworks/ApplicationServices.framework/"
+ "Versions/A/Frameworks/PrintCore.framework/Versions/A/"
+ "Resources/English.lproj/Generic.ppd", 0))
strlcpy(ppd, "PPD=/System/Library/Frameworks/ApplicationServices.framework/"
"Versions/A/Frameworks/PrintCore.framework/Versions/A/"
"Resources/English.lproj/Generic.ppd", sizeof(ppd));
+ else
+ strlcpy(ppd, "PPD=/System/Library/Frameworks/ApplicationServices.framework/"
+ "Versions/A/Frameworks/PrintCore.framework/Versions/A/"
+ "Resources/Generic.ppd", sizeof(ppd));
#else
snprintf(ppd, sizeof(ppd), "PPD=%s/model/laserjet.ppd", DataDir);
#endif /* __APPLE__ */
snprintf(rip_cache, sizeof(rip_cache), "RIP_CACHE=%s", RIPCache);
snprintf(userenv, sizeof(userenv), "USER=%s", user);
- argv[0] = "cupsfilter";
- argv[1] = "0";
+ argv[0] = (char *)printer;
+ argv[1] = "1";
argv[2] = user;
argv[3] = title;
argv[4] = cupsGetOption("copies", num_options, options);
@@ -982,5 +992,5 @@ usage(const char *command, /* I - Command name */
/*
- * End of "$Id: cupsfilter.c 6695 2007-07-19 21:59:30Z mike $".
+ * End of "$Id: cupsfilter.c 6816 2007-08-20 20:16:00Z mike $".
*/
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
index fd8c797db..b65fe6306 100644
--- a/scheduler/ipp.c
+++ b/scheduler/ipp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ipp.c 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: ipp.c 6949 2007-09-12 21:33:23Z mike $"
*
* IPP routines for the Common UNIX Printing System (CUPS) scheduler.
*
@@ -99,10 +99,6 @@
#include "cupsd.h"
-#ifdef HAVE_KRB5_H
-# include <krb5.h>
-#endif /* HAVE_KRB5_H */
-
#ifdef HAVE_LIBPAPER
# include <paper.h>
#endif /* HAVE_LIBPAPER */
@@ -2877,8 +2873,22 @@ authenticate_job(cupsd_client_t *con, /* I - Client connection */
if (!con->username[0] && !auth_info)
{
- send_ipp_status(con, IPP_NOT_AUTHORIZED,
- _("No authentication information provided!"));
+ cupsd_printer_t *printer; /* Job destination */
+
+
+ /*
+ * No auth data. If we need to authenticate via Kerberos, send a
+ * HTTP auth challenge, otherwise just return an IPP error...
+ */
+
+ printer = cupsdFindDest(job->dest);
+
+ if (printer && printer->num_auth_info_required > 0 &&
+ !strcmp(printer->auth_info_required[0], "negotiate"))
+ send_http_error(con, HTTP_UNAUTHORIZED, printer);
+ else
+ send_ipp_status(con, IPP_NOT_AUTHORIZED,
+ _("No authentication information provided!"));
return;
}
@@ -8262,9 +8272,12 @@ save_krb5_creds(cupsd_client_t *con, /* I - Client connection */
return;
# else
- krb5_error_code error; /* Kerberos error code */
- OM_uint32 major_status, /* Major status code */
- minor_status; /* Minor status code */
+ krb5_error_code error; /* Kerberos error code */
+ OM_uint32 major_status, /* Major status code */
+ minor_status; /* Minor status code */
+# ifdef HAVE_KRB5_CC_NEW_UNIQUE
+ krb5_principal principal; /* Kerberos principal */
+# endif /* HAVE_KRB5_CC_NEW_UNIQUE */
# ifdef __APPLE__
@@ -8297,12 +8310,35 @@ save_krb5_creds(cupsd_client_t *con, /* I - Client connection */
&(job->ccache))) != 0)
# endif /* HAVE_KRB5_CC_NEW_UNIQUE */
{
- cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create new credentials (%d/%s)",
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to create new credentials cache (%d/%s)",
error, strerror(errno));
job->ccache = NULL;
return;
}
+ if ((error = krb5_parse_name(KerberosContext, con->username, &principal)) != 0)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to parse kerberos username (%d/%s)",
+ error, strerror(errno));
+ krb5_cc_destroy(KerberosContext, job->ccache);
+ job->ccache = NULL;
+ return;
+ }
+
+ if ((error = krb5_cc_initialize(KerberosContext, job->ccache, principal)))
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to initialize credentials cache (%d/%s)", error,
+ strerror(errno));
+ krb5_cc_destroy(KerberosContext, job->ccache);
+ krb5_free_principal(KerberosContext, principal);
+ job->ccache = NULL;
+ return;
+ }
+
+ krb5_free_principal(KerberosContext, principal);
+
/*
* Copy the user's credentials to the new cache file...
*/
@@ -9893,5 +9929,5 @@ validate_user(cupsd_job_t *job, /* I - Job */
/*
- * End of "$Id: ipp.c 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: ipp.c 6949 2007-09-12 21:33:23Z mike $".
*/
diff --git a/scheduler/job.c b/scheduler/job.c
index ed1982c9c..aecad497e 100644
--- a/scheduler/job.c
+++ b/scheduler/job.c
@@ -1,5 +1,5 @@
/*
- * "$Id: job.c 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: job.c 6887 2007-08-29 21:52:06Z mike $"
*
* Job management routines for the Common UNIX Printing System (CUPS).
*
@@ -2843,7 +2843,11 @@ start_job(cupsd_job_t *job, /* I - Job ID */
!strcmp(attr->name, "page-ranges") ||
!strcmp(attr->name, "page-set") ||
!strcasecmp(attr->name, "AP_FIRSTPAGE_InputSlot") ||
- !strcasecmp(attr->name, "AP_FIRSTPAGE_ManualFeed")) &&
+ !strcasecmp(attr->name, "AP_FIRSTPAGE_ManualFeed") ||
+ !strcasecmp(attr->name, "com.apple.print.PrintSettings."
+ "PMTotalSidesImaged..n.") ||
+ !strcasecmp(attr->name, "com.apple.print.PrintSettings."
+ "PMTotalBeginPages..n.")) &&
banner_page)
continue;
@@ -3784,5 +3788,5 @@ update_job_attrs(cupsd_job_t *job) /* I - Job to update */
/*
- * End of "$Id: job.c 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: job.c 6887 2007-08-29 21:52:06Z mike $".
*/
diff --git a/scheduler/listen.c b/scheduler/listen.c
index 0a3158db4..931bc9de1 100644
--- a/scheduler/listen.c
+++ b/scheduler/listen.c
@@ -1,5 +1,5 @@
/*
- * "$Id: listen.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: listen.c 6788 2007-08-13 17:20:14Z mike $"
*
* Server listening routines for the Common UNIX Printing System (CUPS)
* scheduler.
@@ -428,5 +428,5 @@ cupsdStopListening(void)
/*
- * End of "$Id: listen.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: listen.c 6788 2007-08-13 17:20:14Z mike $".
*/
diff --git a/scheduler/main.c b/scheduler/main.c
index f9f1ba9b1..6b4d83993 100644
--- a/scheduler/main.c
+++ b/scheduler/main.c
@@ -1,5 +1,5 @@
/*
- * "$Id: main.c 6755 2007-08-01 19:02:47Z mike $"
+ * "$Id: main.c 6915 2007-09-05 21:05:17Z mike $"
*
* Scheduler main loop for the Common UNIX Printing System (CUPS).
*
@@ -152,6 +152,18 @@ main(int argc, /* I - Number of command-line args */
#endif /* HAVE_LAUNCHD */
+#ifdef HAVE_GETEUID
+ /*
+ * Check for setuid invocation, which we do not support!
+ */
+
+ if (getuid() != geteuid())
+ {
+ fputs("cupsd: Cannot run as a setuid program!\n", stderr);
+ return (1);
+ }
+#endif /* HAVE_GETEUID */
+
/*
* Check for command-line arguments...
*/
@@ -1880,5 +1892,5 @@ usage(int status) /* O - Exit status */
/*
- * End of "$Id: main.c 6755 2007-08-01 19:02:47Z mike $".
+ * End of "$Id: main.c 6915 2007-09-05 21:05:17Z mike $".
*/
diff --git a/scheduler/process.c b/scheduler/process.c
index 5e0933f15..06c9800c4 100644
--- a/scheduler/process.c
+++ b/scheduler/process.c
@@ -1,5 +1,5 @@
/*
- * "$Id: process.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: process.c 6783 2007-08-10 19:48:57Z mike $"
*
* Process management routines for the Common UNIX Printing System (CUPS).
*
@@ -349,5 +349,5 @@ compare_procs(cupsd_proc_t *a, /* I - First process */
/*
- * End of "$Id: process.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: process.c 6783 2007-08-10 19:48:57Z mike $".
*/
diff --git a/scheduler/quotas.c b/scheduler/quotas.c
index a9bfd0163..2a21d83dd 100644
--- a/scheduler/quotas.c
+++ b/scheduler/quotas.c
@@ -1,5 +1,5 @@
/*
- * "$Id: quotas.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: quotas.c 6949 2007-09-12 21:33:23Z mike $"
*
* Quota routines for the Common UNIX Printing System (CUPS).
*
@@ -48,12 +48,15 @@ cupsdFindQuota(
{
cupsd_quota_t *q, /* Quota data pointer */
match; /* Search data */
+ char *ptr; /* Pointer into username */
if (!p || !username)
return (NULL);
strlcpy(match.username, username, sizeof(match.username));
+ if ((ptr = strchr(match.username, '@')) != NULL)
+ *ptr = '\0'; /* Strip @domain/@KDC */
if ((q = (cupsd_quota_t *)cupsArrayFind(p->quotas, &match)) != NULL)
return (q);
@@ -199,6 +202,7 @@ add_quota(cupsd_printer_t *p, /* I - Printer */
const char *username) /* I - User */
{
cupsd_quota_t *q; /* New quota data */
+ char *ptr; /* Pointer into username */
if (!p || !username)
@@ -214,6 +218,8 @@ add_quota(cupsd_printer_t *p, /* I - Printer */
return (NULL);
strlcpy(q->username, username, sizeof(q->username));
+ if ((ptr = strchr(q->username, '@')) != NULL)
+ *ptr = '\0'; /* Strip @domain/@KDC */
cupsArrayAdd(p->quotas, q);
@@ -234,5 +240,5 @@ compare_quotas(const cupsd_quota_t *q1, /* I - First quota record */
/*
- * End of "$Id: quotas.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: quotas.c 6949 2007-09-12 21:33:23Z mike $".
*/
diff --git a/scheduler/testlpd.c b/scheduler/testlpd.c
index fbc99e10c..e7527339d 100644
--- a/scheduler/testlpd.c
+++ b/scheduler/testlpd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testlpd.c 6705 2007-07-20 22:25:31Z mike $"
+ * "$Id: testlpd.c 6789 2007-08-13 19:52:43Z mike $"
*
* cups-lpd test program for the Common UNIX Printing System (CUPS).
*
@@ -550,5 +550,5 @@ usage(void)
/*
- * End of "$Id: testlpd.c 6705 2007-07-20 22:25:31Z mike $".
+ * End of "$Id: testlpd.c 6789 2007-08-13 19:52:43Z mike $".
*/
diff --git a/systemv/cupstestppd.c b/systemv/cupstestppd.c
index 09a361b99..4a44f4e19 100644
--- a/systemv/cupstestppd.c
+++ b/systemv/cupstestppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: cupstestppd.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: cupstestppd.c 6928 2007-09-07 18:05:14Z mike $"
*
* PPD test program for the Common UNIX Printing System (CUPS).
*
@@ -981,7 +981,8 @@ main(int argc, /* I - Number of command-line args */
else
ydpi = xdpi;
- if (xdpi <= 0 || ydpi <= 0 || strcmp(ptr, "dpi"))
+ if (xdpi <= 0 || xdpi > 99999 || ydpi <= 0 || ydpi > 99999 ||
+ strcmp(ptr, "dpi"))
{
if (verbose >= 0)
{
@@ -2393,8 +2394,30 @@ test_raster(ppd_file_t *ppd, /* I - PPD file */
return (0);
}
- else
+
+ /*
+ * Try a test of custom page size code, if available...
+ */
+
+ if (!ppdPageSize(ppd, "Custom.612x792"))
return (1);
+
+ ppdMarkOption(ppd, "PageSize", "Custom.612x792");
+
+ if (cupsRasterInterpretPPD(&header, ppd, 0, NULL, 0))
+ {
+ if (!verbose)
+ _cupsLangPuts(stdout, _(" FAIL\n"));
+
+ if (verbose >= 0)
+ _cupsLangPrintf(stdout,
+ _(" **FAIL** Default option code cannot be "
+ "interpreted: %s\n"), cupsRasterErrorString());
+
+ return (0);
+ }
+
+ return (1);
}
@@ -2501,5 +2524,5 @@ valid_utf8(const char *s) /* I - String to check */
/*
- * End of "$Id: cupstestppd.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: cupstestppd.c 6928 2007-09-07 18:05:14Z mike $".
*/
diff --git a/templates/de/admin.tmpl b/templates/de/admin.tmpl
index ffa5ba73b..709ac3e2a 100644
--- a/templates/de/admin.tmpl
+++ b/templates/de/admin.tmpl
@@ -6,8 +6,8 @@
<P>
<A HREF="/admin?op=add-printer"><IMG
SRC="/images/button-add-printer.gif" ALT="Drucker hinzuf&uuml;gen" CLASS="button"></A>
-<A HREF="/admin?op=list-available-printers"><IMG
-SRC="/images/button-list-available-printers.gif"
+<A HREF="/admin?op=find-new-printers"><IMG
+SRC="/images/button-find-new-printers.gif"
ALT="Verfügbare Drucker auflisten" CLASS="button"></A>
<A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
ALT="Drucker verwalten" CLASS="button"></A>
diff --git a/templates/es/admin.tmpl b/templates/es/admin.tmpl
index 2f03f48d4..079885754 100644
--- a/templates/es/admin.tmpl
+++ b/templates/es/admin.tmpl
@@ -6,6 +6,9 @@
<P>
<A HREF="/admin?op=add-printer"><IMG
SRC="/images/button-add-printer.gif" ALT="A&ntilde;adir impresora" CLASS="button"></A>
+<A HREF="/admin?op=find-new-printers"><IMG
+SRC="/images/button-find-new-printers.gif"
+ALT="Encontrar nuevas impresoras" CLASS="button"></A>
<A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
ALT="Administrar impresoras" CLASS="button"></A>
{have_samba?<A HREF="/admin/?op=export-samba"><IMG
@@ -13,13 +16,6 @@ SRC="/images/button-export-samba.gif" ALT="Exportar impresoras a Samba"
CLASS="button"></A>:}
</P>
-{#device_uri=0?:<P><B>Encontradas nuevas impresoras:</B></P><UL>{[device_uri]
-<LI><A HREF="/admin?op=add-printer&amp;{device_options}"><IMG
-SRC="/images/button-add-this-printer.gif" ALT="A&ntilde;adir esta impresora"
-CLASS="button" ALIGN="MIDDLE"></A>
-{device_make_and_model} ({device_info})</LI>
-}</UL>}
-
<H2 CLASS="title">Clases</H2>
<P>
@@ -67,7 +63,7 @@ CLASS="button"></A>
<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Compartir impresoras p&uacute;blicas conectadas a este sistema<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Allow printing from the Internet<BR>
<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Permitir administraci&oacute;n remota<BR>
-{have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" {?kerberos}> Use Kerberos authentication<BR>:}
+{have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" {?kerberos}> Usar autentificaci&oacute;n Kerberos (<A HREF="/help/kerberos.html?TOPIC=Getting+Started">FAQ</A>)<BR>:}
<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Permitir a los usuarios cancelar cualquier trabajo (no s&oacute;lo los suyos propios)<BR>
<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Guardar informaci&oacute;n de depuraci&oacute;n para b&uacute;squeda de problemas</P>
@@ -77,3 +73,16 @@ CLASS="button"></A>
</TD></TR>
</TABLE>
+
+<H2 CLASS="title">Subscripciones</H2>
+
+<P>
+<A HREF="/admin/?op=add-rss-subscription"><IMG SRC="/images/button-add-rss-subscription.gif" ALT="A&ntilde;adir subscripci&oacute;n RSS" CLASS="button"></A>
+</P>
+
+{notify_subscription_id?<TABLE WIDTH="100%" CELLSPACING="0" CELLPADDING="0" SUMMARY="Subscripciones RSS">
+<THEAD><TR CLASS="data"><TH>ID</TH><TH>Nombre</TH><TH>Eventos</TH><TH>Cola</TH></TR></THEAD>
+<TBODY>{[notify_subscription_id]
+<TR><TD><A HREF="{notify_recipient_uri}">{notify_subscription_id}</A></TD><TD NOWRAP><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A> <A HREF="/admin/?op=cancel-subscription&amp;notify_subscription_id={notify_subscription_id}"><IMG SRC="/images/button-cancel-subscription.gif" CLASS="button" ALT="Cancelar subscripci&oacute;n RSS"></A>&nbsp;</TD><TD>{notify_events}</TD><TD NOWRAP>&nbsp;{notify_printer_name?{notify_printer_name}:Todas las colas}</TD></TR>}
+</TBODY>
+</TABLE>:}
diff --git a/templates/es/classes.tmpl b/templates/es/classes.tmpl
index 43de08d2a..da4d75bc4 100644
--- a/templates/es/classes.tmpl
+++ b/templates/es/classes.tmpl
@@ -13,10 +13,11 @@
{printer_is_accepting_jobs=0?rechazando trabajos:aceptando trabajos}, {printer_is_shared=0?no:} p&uacute;blica.
{?member_uris=?:<BR>Miembros: {member_uris}}
-<P>
+<P><TABLE WIDTH="100%" CELLPADDING="5" SUMMARY="Acciones">
+<TR VALIGN="TOP"><TD>
<A HREF="{printer_uri_supported}?op=print-test-page">
-<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir p&aacute;gina de prueba" CLASS="button"></A>
-{printer_state=5?
+<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir p&aacute;gina de prueba" CLASS="button"></A></TD>
+<TD>{printer_state=5?
<A HREF="{admin_uri}?op=start-class&amp;printer_name={%printer_name}&amp;is_class=Y">
<IMG SRC="/images/button-start-class.gif" ALT="Iniciar clase" CLASS="button"></A>
:
@@ -31,8 +32,8 @@
<IMG SRC="/images/button-reject-jobs.gif" ALT="Rechazar trabajos" CLASS="button"></A>
}
<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A>
-{printer_is_shared=0?
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A></TD>
+<TD>{printer_is_shared=0?
<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1&amp;is_class=Y">
<IMG SRC="/images/button-publish-printer.gif" ALT="Publicar impresora" CLASS="button"></A>
:
@@ -41,13 +42,16 @@
}
<A HREF="{admin_uri}?op=modify-class&amp;printer_name={%printer_name}">
<IMG SRC="/images/button-modify-class.gif" ALT="Modificar clase" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-class-options&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-set-printer-options.gif" ALT="Cambiar opciones impresora" CLASS="button"></A>
<A HREF="{admin_uri}?op=delete-class&amp;printer_name={%printer_name}">
<IMG SRC="/images/button-delete-class.gif" ALT="Borrar clase" CLASS="button"></A>
<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}&amp;is_class=Y">
<IMG SRC="/images/button-set-as-default.gif" ALT="Poner como predeterminada" CLASS="button"></A>
<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}&amp;is_class=Y">
<IMG SRC="/images/button-set-allowed-users.gif" ALT="Establecer usuarios permitidos" CLASS="button"></A>
-</P>
+</TR>
+</TABLE></P>
</TD>
</TR>
</TABLE>
diff --git a/templates/es/printer-configured.tmpl b/templates/es/printer-configured.tmpl
index db65caef3..5a3eba12a 100644
--- a/templates/es/printer-configured.tmpl
+++ b/templates/es/printer-configured.tmpl
@@ -1 +1 @@
-<P>Se ha configurado con &eacute;xito la impresora <A HREF="/printers/{printer_name}">{printer_name}</A>.
+<P>Se ha configurado con &eacute;xito la {OP=set-class-options?clase <A HREF="/classes/{printer_name}">:impresora <A HREF="/printers/{printer_name}">}</A>.
diff --git a/templates/es/printers.tmpl b/templates/es/printers.tmpl
index 2366f4441..bba86986c 100644
--- a/templates/es/printers.tmpl
+++ b/templates/es/printers.tmpl
@@ -15,13 +15,14 @@
{printer_is_accepting_jobs=0?rechazando trabajos:aceptando trabajos}, {printer_is_shared=0?no:} p&uacute;blica.
{?device_uri=?:<BR><B>URI de la conexi&oacute;n:</B> {device_uri}}
-<P>
+<P><TABLE WIDTH="100%" CELLPADDING="5" SUMMARY="Acciones">
+<TR VALIGN="TOP"><TD>
<A HREF="{printer_uri_supported}?op=print-test-page">
<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir p&aacute;gina de prueba" CLASS="button"></A>
{?cupscommand=1?<A HREF="{printer_uri_supported}?op=clean-print-heads">
<IMG SRC="/images/button-clean-print-heads.gif" ALT="Limpiar cabezales de impresi&oacute;n" CLASS="button"></A>
<A HREF="{printer_uri_supported}?op=print-self-test-page">
-<IMG SRC="/images/button-print-self-test-page.gif" ALT="Imprimir p&aacute;gina de auto-prueba" CLASS="button"></A>:}
+<IMG SRC="/images/button-print-self-test-page.gif" ALT="Imprimir p&aacute;gina de auto-prueba" CLASS="button"></A>:}</TD>
{printer_state=5?
<A HREF="{admin_uri}?op=start-printer&amp;printer_name={%printer_name}">
<IMG SRC="/images/button-start-printer.gif" ALT="Iniciar impresora" CLASS="button"></A>
@@ -39,8 +40,8 @@
<A HREF="{printer_uri_supported}?op=move-jobs&amp;printer_name={%printer_name}">
<IMG SRC="/images/button-move-jobs.gif" ALT="Mover todos los trabajos" CLASS="button"></A>
<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A>
-{printer_is_shared=0?
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Cancelar todos los trabajos" CLASS="button"></A></TD>
+<TD>{printer_is_shared=0?
<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1">
<IMG SRC="/images/button-publish-printer.gif" ALT="Publicar impresora" CLASS="button"></A>
:
@@ -56,8 +57,9 @@
<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}">
<IMG SRC="/images/button-set-as-default.gif" ALT="Poner como predeterminada" CLASS="button"></A>
<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-set-allowed-users.gif" ALT="Establecer usuarios permitidos" CLASS="button"></A>
-</P>
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Establecer usuarios permitidos" CLASS="button"></A></TD>
+</TR>
+</TABLE></P>
</TD>
</TR>
</TABLE>
diff --git a/templates/es/samba-export.tmpl b/templates/es/samba-export.tmpl
index eca4767c9..886a138eb 100644
--- a/templates/es/samba-export.tmpl
+++ b/templates/es/samba-export.tmpl
@@ -19,8 +19,8 @@ function select_printers() {
<P>Consulte el archivo <A HREF="/admin/log/error_log"
TARGET="_blank">error_log</A> para m&aacute;s informaci&oacute;n.</P>:
<P>Esta p&aacute;gina le permite exportar las impresoras a Samba para que
-los clientes Windows puedan acceder a ellas por el icono de su
-escritorio <VAR>Sitios de red</VAR>. Debe haber instalado
+los clientes Windows puedan acceder a ellas por los iconos de su
+escritorio <VAR>Entorno de red</VAR> o <VAR>Sitios de red</VAR>. Debe haber instalado
previamente el controlador de impresora PostScript de Windows
como se describe en la p&aacute;gina del manual
<A HREF="/help/man-cupsaddsmb.html"
@@ -43,7 +43,7 @@ onChange="select_printers()"> Exportar todas las impresoras
</TR>
<TR>
<TH CLASS="label">Contrase&ntilde;a Samba:</TH>
-<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (necesario)</TD>
+<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (necesaria)</TD>
</TR>
<TR>
<TD></TD>
diff --git a/templates/es/trailer.tmpl b/templates/es/trailer.tmpl
index 55f44824e..78051d4f7 100644
--- a/templates/es/trailer.tmpl
+++ b/templates/es/trailer.tmpl
@@ -7,8 +7,8 @@ WIDTH="15" HEIGHT="15" ALT=""></TD>
<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
<P><SMALL>Common UNIX Printing System, CUPS, y el logo de CUPS son
-marcas registradas de <A HREF="http://www.easysw.com">Easy Software
-Products</A>. Los derechos de copia de CUPS 1997-2006 son de Easy Software Products.
+marcas registradas de <A HREF="http://www.apple.com">Apple, Inc.</A> Los
+derechos de copia de CUPS 2007 son de Apple Inc.
Todos los derechos reservados.</SMALL></P>
</TD>