diff options
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 @@ -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áginas web permiten monitorizar sus impresoras y trabajos así como realizar tareas de administración del sistema. -Haga click en cualquiera de las pestañas de la parte superior o en los +Haga clic en cualquiera de las pestañ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ón portable para sistemas operativos basados en UNIX<SUP>®</SUP>. Está desarrollado y mantenido -por <A HREF="http://www.apple.com">Apple Inc.</a> para favorecer una solución de impresión +por <A HREF="http://www.apple.com">Apple Inc.</A> para favorecer una solución de impresión estandar. CUPS es el sistema de impresión estandar usado en MacOS<SUP>®</SUP> X y la mayoría de distribuciones Linux<SUP>®</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èrieuse s'est produite: "/help/com.vendor/error.html" +*de.cupsIPPReason com.vendor-error/Eine ernste Stö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: "<</ManualFeed false>>setpagedevice" +<em>*% Localize InputSlot=Auto for French and German</em> +*fr_CA.InputSlot Auto/Par Defaut: "" +*de.InputSlot Auto/Standard: "" +*InputSlot Manual/Manual Feed: "<</ManualFeed true>>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èrieuse s'est produite: "/help/com.vendor/error.html" -*de.cupsIPPReason com.vendor-error/Eine ernste Stö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: "<</ManualFeed false>>setpagedevice" -<em>*% Localize InputSlot=Auto for French and German</em> -*fr_CA.InputSlot Auto/Par Defaut: "" -*de.InputSlot Auto/Standard: "" -*InputSlot Manual/Manual Feed: "<</ManualFeed true>>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 <</PageSize[5 -2 roll]/ImagingBBox null>>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><<</tt> or <tt>>></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><<</tt> and <tt>>></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><<</tt> or <tt>>></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><<</tt> and +<tt>>></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&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 \"%s\" til muligheden \"%s\"!\n" +msgstr "WARNING: Ukendt valg \"%s\" til muligheden \"%s\"!\n" msgid "WARNING: Unknown option \"%s\"!\n" -msgstr "ADVARSEL: Ukendt mulighed \"%s\"!\n" +msgstr "WARNING: Ukendt mulighed \"%s\"!\n" msgid "WARNING: Unsupported baud rate %s!\n" -msgstr "ADVARSEL: Ikke understøttet baudhastighed %s!\n" +msgstr "WARNING: Ikke understøttet baudhastighed %s!\n" msgid "WARNING: recoverable: Network host '%s' is busy; will retry in %d seconds...\n" -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ü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ñ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&{device_options}"><IMG -SRC="/images/button-add-this-printer.gif" ALT="Añ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úblicas conectadas a este sistema<BR> <INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Allow printing from the Internet<BR> <INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Permitir administració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ó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ólo los suyos propios)<BR> <INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Guardar información de depuración para bú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ñadir subscripció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&notify_subscription_id={notify_subscription_id}"><IMG SRC="/images/button-cancel-subscription.gif" CLASS="button" ALT="Cancelar subscripción RSS"></A> </TD><TD>{notify_events}</TD><TD NOWRAP> {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ú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ágina de prueba" CLASS="button"></A> -{printer_state=5? +<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimir página de prueba" CLASS="button"></A></TD> +<TD>{printer_state=5? <A HREF="{admin_uri}?op=start-class&printer_name={%printer_name}&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&printer_name={%printer_name}&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&printer_name={%printer_name}&shared=1&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&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&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&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&printer_name={%printer_name}&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&printer_name={%printer_name}&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 éxito la impresora <A HREF="/printers/{printer_name}">{printer_name}</A>. +<P>Se ha configurado con é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ública. {?device_uri=?:<BR><B>URI de la conexió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á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ó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ágina de auto-prueba" CLASS="button"></A>:} +<IMG SRC="/images/button-print-self-test-page.gif" ALT="Imprimir página de auto-prueba" CLASS="button"></A>:}</TD> {printer_state=5? <A HREF="{admin_uri}?op=start-printer&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&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&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&printer_name={%printer_name}&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&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&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ás información.</P>: <P>Esta pá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á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ñ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> |