From: Michael R Sweet Date: Sun, 19 Aug 2018 12:32:04 +0000 (-0400) Subject: Fix localization of IPP Everywhere PPD (Issue #5362) X-Git-Tag: v2.3b6~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c96cc7c0e2a2c4aed600212c22ff3838297ff6df;p=thirdparty%2Fcups.git Fix localization of IPP Everywhere PPD (Issue #5362) --- diff --git a/CHANGES.md b/CHANGES.md index 078372cae3..1a35080209 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,7 +4,7 @@ CHANGES - 2.3b6 - 2018-08-18 Changes in CUPS v2.3b6 ---------------------- -- Localization update (Issue #5339, Issue #5348) +- Localization update (Issue #5339, Issue #5348, Issue #5362) - The lpadmin command would create a non-working printer in some error cases (Issue #5305) - The scheduler would crash if an empty `AccessLog` directive was specified diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c index 827eba5d3b..11de7cb9d1 100644 --- a/cups/ppd-cache.c +++ b/cups/ppd-cache.c @@ -3694,7 +3694,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (!strcmp(sources[j], keyword)) { snprintf(msgid, sizeof(msgid), "media-source.%s", keyword); - cupsFilePrintf(fp, "*InputSlot %s/%s: \"<>setpagedevice\"\n", ppdname, _cupsLangString(lang, msgid), j); + cupsFilePrintf(fp, "*InputSlot %s: \"<>setpagedevice\"\n", ppdname, j); + cupsFilePrintf(fp, "*%s.InputSlot %s/%s: \"\"\n", lang->language, ppdname, _cupsLangString(lang, msgid)); break; } } @@ -3726,7 +3727,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) msgstr = keyword; - cupsFilePrintf(fp, "*MediaType %s/%s: \"<>setpagedevice\"\n", ppdname, msgstr, ppdname); + cupsFilePrintf(fp, "*MediaType %s: \"<>setpagedevice\"\n", ppdname, ppdname); + cupsFilePrintf(fp, "*%s.MediaType %s/%s: \"\"\n", lang->language, ppdname, msgstr); } cupsFilePuts(fp, "*CloseUI: *MediaType\n"); } @@ -3749,14 +3751,14 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { keyword = ippGetString(attr, i, NULL); -#define PRINTF_COLORMODEL if (!wrote_color) { cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n*OrderDependency: 10 AnySetup *ColorModel\n", _cupsLangString(lang, _("Color Mode"))); wrote_color = 1; } -#define PRINTF_COLOROPTION(name,text,cspace,bpp) cupsFilePrintf(fp, "*ColorModel %s/%s: \"<>setpagedevice\"\n", name, _cupsLangString(lang, text), cspace, bpp) +#define PRINTF_COLORMODEL if (!wrote_color) { cupsFilePrintf(fp, "*OpenUI *ColorModel: PickOne\n*OrderDependency: 10 AnySetup *ColorModel\n*%s.Translation ColorModel/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Color Mode"))); wrote_color = 1; } +#define PRINTF_COLOROPTION(name,text,cspace,bpp) { cupsFilePrintf(fp, "*ColorModel %s: \"<>setpagedevice\"\n", name, cspace, bpp); cupsFilePrintf(fp, "*%s.ColorModel %s/%s: \"\"\n", lang->language, name, _cupsLangString(lang, text)); } if (!strcasecmp(keyword, "black_1") || !strcmp(keyword, "bi-level") || !strcmp(keyword, "process-bi-level")) { PRINTF_COLORMODEL - PRINTF_COLOROPTION("FastGray", _("Fast Grayscale"), CUPS_CSPACE_K, 1); + PRINTF_COLOROPTION("FastGray", _("Fast Grayscale"), CUPS_CSPACE_K, 1) if (!default_color) default_color = "FastGray"; @@ -3765,7 +3767,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { PRINTF_COLORMODEL - PRINTF_COLOROPTION("Gray", _("Grayscale"), CUPS_CSPACE_SW, 8); + PRINTF_COLOROPTION("Gray", _("Grayscale"), CUPS_CSPACE_SW, 8) if (!default_color || !strcmp(default_color, "FastGray")) default_color = "Gray"; @@ -3776,19 +3778,19 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (!strcmp(keyword, "W8-16")) { - PRINTF_COLOROPTION("Gray", _("Grayscale"), CUPS_CSPACE_SW, 8); + PRINTF_COLOROPTION("Gray", _("Grayscale"), CUPS_CSPACE_SW, 8) if (!default_color || !strcmp(default_color, "FastGray")) default_color = "Gray"; } - PRINTF_COLOROPTION("Gray16", _("Deep Gray"), CUPS_CSPACE_SW, 16); + PRINTF_COLOROPTION("Gray16", _("Deep Gray"), CUPS_CSPACE_SW, 16) } else if (!strcasecmp(keyword, "srgb_8") || !strncmp(keyword, "SRGB24", 7) || !strcmp(keyword, "color")) { PRINTF_COLORMODEL - PRINTF_COLOROPTION("RGB", _("Color"), CUPS_CSPACE_SRGB, 8); + PRINTF_COLOROPTION("RGB", _("Color"), CUPS_CSPACE_SRGB, 8) default_color = "RGB"; } @@ -3796,7 +3798,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { PRINTF_COLORMODEL - PRINTF_COLOROPTION("AdobeRGB", _("Deep Color"), CUPS_CSPACE_ADOBERGB, 16); + PRINTF_COLOROPTION("AdobeRGB", _("Deep Color"), CUPS_CSPACE_ADOBERGB, 16) if (!default_color) default_color = "AdobeRGB"; @@ -3805,7 +3807,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { PRINTF_COLORMODEL - PRINTF_COLOROPTION("AdobeRGB", _("Deep Color"), CUPS_CSPACE_ADOBERGB, 8); + PRINTF_COLOROPTION("AdobeRGB", _("Deep Color"), CUPS_CSPACE_ADOBERGB, 8) if (!default_color) default_color = "AdobeRGB"; @@ -3814,37 +3816,37 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { PRINTF_COLORMODEL - PRINTF_COLOROPTION("DeviceGray", _("Device Gray"), CUPS_CSPACE_W, 8); + PRINTF_COLOROPTION("DeviceGray", _("Device Gray"), CUPS_CSPACE_W, 8) } else if (!strcasecmp(keyword, "black_16") || !strcmp(keyword, "DEVW16") || !strcmp(keyword, "DEVW8-16")) { PRINTF_COLORMODEL - PRINTF_COLOROPTION("DeviceGray", _("Device Gray"), CUPS_CSPACE_W, 16); + PRINTF_COLOROPTION("DeviceGray", _("Device Gray"), CUPS_CSPACE_W, 16) } else if ((!strcasecmp(keyword, "cmyk_8") && !ippContainsString(attr, "cmyk_16")) || !strcmp(keyword, "DEVCMYK32")) { PRINTF_COLORMODEL - PRINTF_COLOROPTION("CMYK", _("Device CMYK"), CUPS_CSPACE_CMYK, 8); + PRINTF_COLOROPTION("CMYK", _("Device CMYK"), CUPS_CSPACE_CMYK, 8) } else if (!strcasecmp(keyword, "cmyk_16") || !strcmp(keyword, "DEVCMYK32-64") || !strcmp(keyword, "DEVCMYK64")) { PRINTF_COLORMODEL - PRINTF_COLOROPTION("CMYK", _("Device CMYK"), CUPS_CSPACE_CMYK, 16); + PRINTF_COLOROPTION("CMYK", _("Device CMYK"), CUPS_CSPACE_CMYK, 16) } else if ((!strcasecmp(keyword, "rgb_8") && ippContainsString(attr, "rgb_16")) || !strcmp(keyword, "DEVRGB24")) { PRINTF_COLORMODEL - PRINTF_COLOROPTION("DeviceRGB", _("Device RGB"), CUPS_CSPACE_RGB, 8); + PRINTF_COLOROPTION("DeviceRGB", _("Device RGB"), CUPS_CSPACE_RGB, 8) } else if (!strcasecmp(keyword, "rgb_16") || !strcmp(keyword, "DEVRGB24-48") || !strcmp(keyword, "DEVRGB48")) { PRINTF_COLORMODEL - PRINTF_COLOROPTION("DeviceRGB", _("Device RGB"), CUPS_CSPACE_RGB, 16); + PRINTF_COLOROPTION("DeviceRGB", _("Device RGB"), CUPS_CSPACE_RGB, 16) } } @@ -3860,13 +3862,17 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((attr = ippFindAttribute(response, "sides-supported", IPP_TAG_KEYWORD)) != NULL && ippContainsString(attr, "two-sided-long-edge")) { - cupsFilePrintf(fp, "*OpenUI *Duplex/%s: PickOne\n" + cupsFilePrintf(fp, "*OpenUI *Duplex: PickOne\n" "*OrderDependency: 10 AnySetup *Duplex\n" + "*%s.Translation Duplex/%s: \"\"\n" "*DefaultDuplex: None\n" - "*Duplex None/%s: \"<>setpagedevice\"\n" - "*Duplex DuplexNoTumble/%s: \"<>setpagedevice\"\n" - "*Duplex DuplexTumble/%s: \"<>setpagedevice\"\n" - "*CloseUI: *Duplex\n", _cupsLangString(lang, _("2-Sided Printing")), _cupsLangString(lang, _("Off (1-Sided)")), _cupsLangString(lang, _("Long-Edge (Portrait)")), _cupsLangString(lang, _("Short-Edge (Landscape)"))); + "*Duplex None: \"<>setpagedevice\"\n" + "*%s.Duplex None/%s: \"\"\n" + "*Duplex DuplexNoTumble: \"<>setpagedevice\"\n" + "*%s.Duplex DuplexNoTumble/%s: \"\"\n" + "*Duplex DuplexTumble: \"<>setpagedevice\"\n" + "*%s.Duplex DuplexTumble/%s: \"\"\n" + "*CloseUI: *Duplex\n", lang->language, _cupsLangString(lang, _("2-Sided Printing")), lang->language, _cupsLangString(lang, _("Off (1-Sided)")), lang->language, _cupsLangString(lang, _("Long-Edge (Portrait)")), lang->language, _cupsLangString(lang, _("Short-Edge (Landscape)"))); if ((attr = ippFindAttribute(response, "urf-supported", IPP_TAG_KEYWORD)) != NULL) { @@ -3937,7 +3943,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) msgstr = keyword; - cupsFilePrintf(fp, "*OutputBin %s/%s: \"\"\n", ppdname, msgstr); + cupsFilePrintf(fp, "*OutputBin %s: \"\"\n", ppdname); + cupsFilePrintf(fp, "*%s.OutputBin %s/%s: \"\"\n", lang->language, ppdname, msgstr); } cupsFilePuts(fp, "*CloseUI: *OutputBin\n"); } @@ -3972,10 +3979,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { cupsArrayAdd(fin_options, "*StapleLocation"); - cupsFilePrintf(fp, "*OpenUI *StapleLocation/%s: PickOne\n", _cupsLangString(lang, _("Staple"))); + cupsFilePuts(fp, "*OpenUI *StapleLocation: PickOne\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *StapleLocation\n"); + cupsFilePrintf(fp, "*%s.Translation StapleLocation/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Staple"))); cupsFilePuts(fp, "*DefaultStapleLocation: None\n"); - cupsFilePrintf(fp, "*StapleLocation None/%s: \"\"\n", _cupsLangString(lang, _("None"))); + cupsFilePuts(fp, "*StapleLocation None: \"\"\n"); + cupsFilePrintf(fp, "*%s.StapleLocation None/%s: \"\"\n", lang->language, _cupsLangString(lang, _("None"))); for (; i < count; i ++) { @@ -3995,7 +4004,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) msgstr = keyword; - cupsFilePrintf(fp, "*StapleLocation %s/%s: \"\"\n", keyword, msgstr); + cupsFilePrintf(fp, "*StapleLocation %s: \"\"\n", keyword); + cupsFilePrintf(fp, "*%s.StapleLocation %s/%s: \"\"\n", lang->language, keyword, msgstr); cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*StapleLocation %s\"\n", value, keyword, keyword); } @@ -4019,10 +4029,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { cupsArrayAdd(fin_options, "*FoldType"); - cupsFilePrintf(fp, "*OpenUI *FoldType/%s: PickOne\n", _cupsLangString(lang, _("Fold"))); + cupsFilePuts(fp, "*OpenUI *FoldType: PickOne\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *FoldType\n"); + cupsFilePrintf(fp, "*%s.Translation FoldType/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Fold"))); cupsFilePuts(fp, "*DefaultFoldType: None\n"); - cupsFilePrintf(fp, "*FoldType None/%s: \"\"\n", _cupsLangString(lang, _("None"))); + cupsFilePuts(fp, "*FoldType None: \"\"\n"); + cupsFilePrintf(fp, "*%s.FoldType None/%s: \"\"\n", lang->language, _cupsLangString(lang, _("None"))); for (; i < count; i ++) { @@ -4042,7 +4054,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) msgstr = keyword; - cupsFilePrintf(fp, "*FoldType %s/%s: \"\"\n", keyword, msgstr); + cupsFilePrintf(fp, "*FoldType %s: \"\"\n", keyword); + cupsFilePrintf(fp, "*%s.FoldType %s/%s: \"\"\n", lang->language, keyword, msgstr); cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*FoldType %s\"\n", value, keyword, keyword); } @@ -4066,10 +4079,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { cupsArrayAdd(fin_options, "*PunchMedia"); - cupsFilePrintf(fp, "*OpenUI *PunchMedia/%s: PickOne\n", _cupsLangString(lang, _("Punch"))); + cupsFilePuts(fp, "*OpenUI *PunchMedia: PickOne\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *PunchMedia\n"); + cupsFilePrintf(fp, "*%s.Translation PunchMedia/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Punch"))); cupsFilePuts(fp, "*DefaultPunchMedia: None\n"); - cupsFilePrintf(fp, "*PunchMedia None/%s: \"\"\n", _cupsLangString(lang, _("None"))); + cupsFilePuts(fp, "*PunchMedia None: \"\"\n"); + cupsFilePrintf(fp, "*%s.PunchMedia None/%s: \"\"\n", lang->language, _cupsLangString(lang, _("None"))); for (i = 0; i < count; i ++) { @@ -4089,7 +4104,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) msgstr = keyword; - cupsFilePrintf(fp, "*PunchMedia %s/%s: \"\"\n", keyword, msgstr); + cupsFilePrintf(fp, "*PunchMedia %s: \"\"\n", keyword); + cupsFilePrintf(fp, "*%s.PunchMedia %s/%s: \"\"\n", lang->language, keyword, msgstr); cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*PunchMedia %s\"\n", value, keyword, keyword); } @@ -4104,8 +4120,9 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { cupsArrayAdd(fin_options, "*Booklet"); - cupsFilePrintf(fp, "*OpenUI *Booklet/%s: Boolean\n", _cupsLangString(lang, _("Booklet"))); + cupsFilePuts(fp, "*OpenUI *Booklet: Boolean\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *Booklet\n"); + cupsFilePrintf(fp, "*%s.Translation Booklet/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Booklet"))); cupsFilePuts(fp, "*DefaultBooklet: False\n"); cupsFilePuts(fp, "*Booklet False: \"\"\n"); cupsFilePuts(fp, "*Booklet True: \"\"\n"); @@ -4122,10 +4139,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ ipp_attribute_t *finishing_attr; /* Current finishing member attribute */ cups_array_t *templates; /* Finishing templates */ - cupsFilePrintf(fp, "*OpenUI *cupsFinishingTemplate/%s: PickOne\n", _cupsLangString(lang, _("Finishing Preset"))); + cupsFilePuts(fp, "*OpenUI *cupsFinishingTemplate: PickOne\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *cupsFinishingTemplate\n"); + cupsFilePrintf(fp, "*%s.Translation cupsFinishingTemplate/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Finishing Preset"))); cupsFilePuts(fp, "*DefaultcupsFinishingTemplate: none\n"); - cupsFilePrintf(fp, "*cupsFinishingTemplate none/%s: \"\"\n", _cupsLangString(lang, _("None"))); + cupsFilePuts(fp, "*cupsFinishingTemplate none: \"\"\n"); + cupsFilePrintf(fp, "*%s.cupsFinishingTemplate none/%s: \"\"\n", lang->language, _cupsLangString(lang, _("None"))); templates = cupsArrayNew((cups_array_func_t)strcmp, NULL); count = ippGetCount(attr); @@ -4148,7 +4167,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) msgstr = keyword; - cupsFilePrintf(fp, "*cupsFinishingTemplate %s/%s: \"\n", keyword, msgstr); + cupsFilePrintf(fp, "*cupsFinishingTemplate %s: \"\n", keyword); for (finishing_attr = ippFirstAttribute(finishing_col); finishing_attr; finishing_attr = ippNextAttribute(finishing_col)) { if (ippGetValueTag(finishing_attr) == IPP_TAG_BEGIN_COLLECTION) @@ -4161,6 +4180,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ } } cupsFilePuts(fp, "\"\n"); + cupsFilePrintf(fp, "*%s.cupsFinishingTemplate %s/%s: \"\"\n", lang->language, keyword, msgstr); cupsFilePuts(fp, "*End\n"); } @@ -4228,16 +4248,19 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ cupsFilePrintf(fp, "*DefaultResolution: %ddpi\n", lowdpi); - cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" - "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality"))); + cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality: PickOne\n" + "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" + "*%s.Translation cupsPrintQuality/%s: \"\"\n" + "*DefaultcupsPrintQuality: Normal\n", lang->language, _cupsLangString(lang, _("Print Quality"))); if ((lowdpi & 1) == 0) - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), lowdpi, lowdpi / 2); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<>setpagedevice\"\n*%s.cupsPrintQuality Draft/%s: \"\"\n", lowdpi, lowdpi / 2, lang->language, _cupsLangString(lang, _("Draft"))); else if (ippContainsInteger(quality, IPP_QUALITY_DRAFT)) - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), lowdpi, lowdpi); - cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), lowdpi, lowdpi); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<>setpagedevice\"\n*%s.cupsPrintQuality Draft/%s: \"\"\n", lowdpi, lowdpi, lang->language, _cupsLangString(lang, _("Draft"))); + + cupsFilePrintf(fp, "*cupsPrintQuality Normal: \"<>setpagedevice\"\n*%s.cupsPrintQuality Normal/%s: \"\"\n", lowdpi, lowdpi, lang->language, _cupsLangString(lang, _("Normal"))); + if (hidpi > lowdpi || ippContainsInteger(quality, IPP_QUALITY_HIGH)) - cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("High")), hidpi, hidpi); + cupsFilePrintf(fp, "*cupsPrintQuality High: \"<>setpagedevice\"\n*%s.cupsPrintQuality High/%s: \"\"\n", hidpi, hidpi, lang->language, _cupsLangString(lang, _("High"))); cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n"); } } @@ -4287,20 +4310,26 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ pwg_ppdize_resolution(attr, resolutions[count / 2], &xres, &yres, ppdname, sizeof(ppdname)); cupsFilePrintf(fp, "*DefaultResolution: %s\n", ppdname); - cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" - "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality"))); + cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality: PickOne\n" + "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" + "*%s.Translation cupsPrintQuality/%s: \"\"\n" + "*DefaultcupsPrintQuality: Normal\n", lang->language, _cupsLangString(lang, _("Print Quality"))); if (count > 2 || ippContainsInteger(quality, IPP_QUALITY_DRAFT)) { pwg_ppdize_resolution(attr, resolutions[0], &xres, &yres, NULL, 0); - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<>setpagedevice\"\n", xres, yres); + cupsFilePrintf(fp, "*%s.cupsPrintQuality Draft/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Draft"))); } + pwg_ppdize_resolution(attr, resolutions[count / 2], &xres, &yres, NULL, 0); - cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality Normal: \"<>setpagedevice\"\n", xres, yres); + cupsFilePrintf(fp, "*%s.cupsPrintQuality Normal/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Normal"))); + if (count > 1 || ippContainsInteger(quality, IPP_QUALITY_HIGH)) { pwg_ppdize_resolution(attr, resolutions[count - 1], &xres, &yres, NULL, 0); - cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("High")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality High: \"<>setpagedevice\"\n", xres, yres); + cupsFilePrintf(fp, "*%s.cupsPrintQuality High/%s: \"\"\n", lang->language, _cupsLangString(lang, _("High"))); } cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n"); @@ -4321,14 +4350,17 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ cupsFilePrintf(fp, "*DefaultResolution: %s\n", ppdname); - cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n" + cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality: PickOne\n" "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" - "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality"))); + "*%s.Translation cupsPrintQuality/%s: \"\"\n" + "*DefaultcupsPrintQuality: Normal\n", lang->language, _cupsLangString(lang, _("Print Quality"))); if (ippContainsInteger(quality, IPP_QUALITY_DRAFT)) - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), xres, yres); - cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<>setpagedevice\"\n*%s.cupsPrintQuality Draft/%s: \"\"\n", xres, yres, lang->language, _cupsLangString(lang, _("Draft"))); + + cupsFilePrintf(fp, "*cupsPrintQuality Normal: \"<>setpagedevice\"\n*%s.cupsPrintQuality Normal/%s: \"\"\n", xres, yres, lang->language, _cupsLangString(lang, _("Normal"))); + if (ippContainsInteger(quality, IPP_QUALITY_HIGH)) - cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<>setpagedevice\"\n", _cupsLangString(lang, _("High")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality High: \"<>setpagedevice\"\n*%s.cupsPrintQuality High/%s: \"\"\n", xres, yres, lang->language, _cupsLangString(lang, _("High"))); cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n"); } @@ -4352,11 +4384,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (!preset || !preset_name) continue; - if ((localized_name = _cupsMessageLookup(strings, preset_name)) == preset_name) - cupsFilePrintf(fp, "*APPrinterPreset %s: \"\n", preset_name); - else - cupsFilePrintf(fp, "*APPrinterPreset %s/%s: \"\n", preset_name, localized_name); - + cupsFilePrintf(fp, "*APPrinterPreset %s: \"\n", preset_name); for (member = ippFirstAttribute(preset); member; member = ippNextAttribute(preset)) { member_name = ippGetName(member); @@ -4474,6 +4502,9 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ } cupsFilePuts(fp, "\"\n*End\n"); + + if ((localized_name = _cupsMessageLookup(strings, preset_name)) != preset_name) + cupsFilePrintf(fp, "*%s.APPrinterPreset %s/%s: \"\"\n", lang->language, preset_name, localized_name); } }