Merge
authorlana
Wed, 02 May 2012 09:53:29 -0700
changeset 12522 1ce24ce9df2f
parent 12491 b3a91113026c (current diff)
parent 12521 e5776d8429e7 (diff)
child 12536 3584064dc0ee
Merge
--- a/jdk/src/macosx/native/sun/awt/PrinterView.m	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/macosx/native/sun/awt/PrinterView.m	Wed May 02 09:53:29 2012 -0700
@@ -27,6 +27,7 @@
 
 #import "java_awt_print_Pageable.h"
 #import "java_awt_print_Printable.h"
+#import "java_awt_print_PageFormat.h"
 
 #import <JavaNativeFoundation/JavaNativeFoundation.h>
 
@@ -35,6 +36,7 @@
 
 
 static JNF_CLASS_CACHE(sjc_CPrinterJob, "sun/lwawt/macosx/CPrinterJob");
+static JNF_CLASS_CACHE(sjc_PageFormat, "java/awt/print/PageFormat");
 
 @implementation PrinterView
 
@@ -152,6 +154,7 @@
 
     static JNF_MEMBER_CACHE(jm_getPageformatPrintablePeekgraphics, sjc_CPrinterJob, "getPageformatPrintablePeekgraphics", "(I)[Ljava/lang/Object;");
     static JNF_MEMBER_CACHE(jm_printAndGetPageFormatArea, sjc_CPrinterJob, "printAndGetPageFormatArea", "(Ljava/awt/print/Printable;Ljava/awt/Graphics;Ljava/awt/print/PageFormat;I)Ljava/awt/geom/Rectangle2D;");
+    static JNF_MEMBER_CACHE(jm_getOrientation, sjc_PageFormat, "getOrientation", "()I");
 
     // Assertions removed, and corresponding JNFDeleteGlobalRefs added, for radr://3962543
     // Actual fix that will keep these assertions from being true is radr://3205462 ,
@@ -201,6 +204,26 @@
         // Actually print and get the PageFormatArea
         jobject pageFormatArea = JNFCallObjectMethod(env, fPrinterJob, jm_printAndGetPageFormatArea, fCurPainter, fCurPeekGraphics, fCurPageFormat, jPageNumber); // AWT_THREADING Safe (AWTRunLoopMode)
         if (pageFormatArea != NULL) {
+            NSPrintingOrientation currentOrientation = 
+                    [[[NSPrintOperation currentOperation] printInfo] orientation];
+            // set page orientation
+            switch (JNFCallIntMethod(env, fCurPageFormat, jm_getOrientation)) { 
+                case java_awt_print_PageFormat_PORTRAIT:
+                default:
+                    if (currentOrientation != NSPortraitOrientation) {
+                        [[[NSPrintOperation currentOperation] printInfo] 
+                                            setOrientation:NSPortraitOrientation];
+                    }
+                    break;
+
+                case java_awt_print_PageFormat_LANDSCAPE:
+                case java_awt_print_PageFormat_REVERSE_LANDSCAPE:
+                    if (currentOrientation != NSLandscapeOrientation) {
+                        [[[NSPrintOperation currentOperation] printInfo] 
+                                            setOrientation:NSLandscapeOrientation];
+                    }
+                    break;
+                }
             result = JavaToNSRect(env, pageFormatArea);
             (*env)->DeleteLocalRef(env, pageFormatArea);
         } else {
--- a/jdk/src/share/classes/sun/print/ServiceDialog.java	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/ServiceDialog.java	Wed May 02 09:53:29 2012 -0700
@@ -72,6 +72,7 @@
 import sun.print.SunPageSelection;
 import java.awt.event.KeyEvent;
 import java.net.URISyntaxException;
+import java.lang.reflect.Field;
 
 
 /**
@@ -479,20 +480,45 @@
      */
     public static String getMsg(String key) {
         try {
-            return messageRB.getString(key);
+            return removeMnemonics(messageRB.getString(key));
         } catch (java.util.MissingResourceException e) {
             throw new Error("Fatal: Resource for ServiceUI is broken; " +
                             "there is no " + key + " key in resource");
         }
     }
 
+    private static String removeMnemonics(String s) {
+        int i = s.indexOf('&');
+        int len = s.length();
+        if (i < 0 || i == (len - 1)) {
+            return s;
+        }
+        int j = s.indexOf('&', i+1);
+        if (j == i+1) {
+            if (j+1 == len) {
+                return s.substring(0, i+1);  // string ends with &&
+            } else {
+                return s.substring(0, i+1) + removeMnemonics(s.substring(j+1));
+            }
+        }
+        // ok first & not double &&
+        if (i == 0) {
+            return removeMnemonics(s.substring(1));
+        } else {
+            return (s.substring(0, i) + removeMnemonics(s.substring(i+1)));
+        }
+    }
+
+
     /**
      * Returns mnemonic character from resource
      */
     private static char getMnemonic(String key) {
-        String str = getMsg(key + ".mnemonic");
-        if ((str != null) && (str.length() > 0)) {
-            return str.charAt(0);
+        String str = messageRB.getString(key).replace("&&", "");
+        int index = str.indexOf('&');
+        if (0 <= index && index < str.length() - 1) {
+            char c = str.charAt(index + 1);
+            return Character.toUpperCase(c);
         } else {
             return (char)0;
         }
@@ -501,12 +527,23 @@
     /**
      * Returns the mnemonic as a KeyEvent.VK constant from the resource.
      */
+    static Class _keyEventClazz = null;
     private static int getVKMnemonic(String key) {
-        String str = getMsg(key + ".vkMnemonic");
-        if ((str != null) && (str.length() > 0)) {
-            try {
-                return Integer.parseInt(str);
-            } catch (NumberFormatException nfe) {}
+        String s = String.valueOf(getMnemonic(key));
+        if ( s == null || s.length() != 1) {
+            return 0;
+        }
+        String vkString = "VK_" + s.toUpperCase();
+
+        try {
+            if (_keyEventClazz == null) {
+                _keyEventClazz= Class.forName("java.awt.event.KeyEvent",
+                                 true, (ServiceDialog.class).getClassLoader());
+            }
+            Field field = _keyEventClazz.getDeclaredField(vkString);
+            int value = field.getInt(null);
+            return value;
+        } catch (Exception e) {
         }
         return 0;
     }
--- a/jdk/src/share/classes/sun/print/resources/serviceui.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=Cancel
 button.ok=OK
 button.print=Print
-button.properties=Properties...
-button.properties.mnemonic=R
+button.properties=P&roperties...
 #
-checkbox.collate=Collate
-checkbox.collate.mnemonic=C
-checkbox.jobsheets=Banner Page
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=Print To File
-checkbox.printtofile.mnemonic=F
+checkbox.collate=&Collate
+checkbox.jobsheets=&Banner Page
+checkbox.printtofile=Print To &File
 #
 dialog.printtitle=Print
 dialog.pstitle=Page Setup
@@ -33,70 +29,42 @@
 dialog.writeerror=Cannot write to file:
 #
 label.info=Info:
-label.jobname=Job Name:
-label.jobname.mnemonic=J
-label.numcopies=Number of copies:
-label.numcopies.mnemonic=O
-label.priority=Priority:
-label.priority.mnemonic=R
-label.psname=Name:
-label.psname.mnemonic=N
+label.jobname=&Job Name:
+label.numcopies=Number &of copies:
+label.priority=P&riority:
+label.psname=&Name:
 label.pstype=Type:
 label.rangeto=To
-label.size=Size:
-label.size.mnemonic=Z
-label.source=Source:
-label.source.mnemonic=C
+label.size=Si&ze:
+label.source=Sour&ce:
 label.status=Status:
-label.username=User Name:
-label.username.mnemonic=U
+label.username=&User Name:
 label.millimetres=(mm)
 label.inches=(in)
-label.topmargin=top
-label.topmargin.mnemonic=T
-label.bottommargin=bottom
-label.bottommargin.mnemonic=B
-label.leftmargin=left
-label.leftmargin.mnemonic=F
-label.rightmargin=right
-label.rightmargin.mnemonic=R
+label.topmargin=&top
+label.bottommargin=&bottom
+label.leftmargin=le&ft
+label.rightmargin=&right
 #
-radiobutton.color=Color
-radiobutton.color.mnemonic=C
-radiobutton.draftq=Draft
-radiobutton.draftq.mnemonic=F
-radiobutton.duplex=Duplex
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=High
-radiobutton.highq.mnemonic=H
-radiobutton.landscape=Landscape
-radiobutton.landscape.mnemonic=L
-radiobutton.monochrome=Monochrome
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=Normal
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=One Side
-radiobutton.oneside.mnemonic=O
-radiobutton.portrait=Portrait
-radiobutton.portrait.mnemonic=P
-radiobutton.rangeall=All
-radiobutton.rangeall.mnemonic=L
-radiobutton.rangepages=Pages
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=Reverse Landscape
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=Reverse Portrait
-radiobutton.revportrait.mnemonic=I
-radiobutton.tumble=Tumble
-radiobutton.tumble.mnemonic=T
+radiobutton.color=&Color
+radiobutton.draftq=Dra&ft
+radiobutton.duplex=&Duplex
+radiobutton.highq=&High
+radiobutton.landscape=&Landscape
+radiobutton.monochrome=&Monochrome
+radiobutton.normalq=&Normal
+radiobutton.oneside=&One Side
+radiobutton.portrait=&Portrait
+radiobutton.rangeall=A&ll
+radiobutton.rangepages=Pag&es
+radiobutton.revlandscape=Reverse La&ndscape
+radiobutton.revportrait=Reverse Portra&it
+radiobutton.tumble=&Tumble
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=Appearance
-tab.appearance.vkMnemonic=65
-tab.general=General
-tab.general.vkMnemonic=71
-tab.pagesetup=Page Setup
-tab.pagesetup.vkMnemonic=83
+tab.appearance=&Appearance
+tab.general=&General
+tab.pagesetup=Page &Setup
 #
 error.pagerange=Invalid page range; please re-enter values (e.g. 1-3,5,7-10)
 error.destination=Invalid filename; please try again
--- a/jdk/src/share/classes/sun/print/resources/serviceui_de.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_de.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=Abbrechen
 button.ok=OK
 button.print=Drucken
-button.properties=Eigenschaften...
-button.properties.mnemonic=I
+button.properties=E&igenschaften...
 #
-checkbox.collate=Sortieren
-checkbox.collate.mnemonic=R
-checkbox.jobsheets=Bannerseite
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=Ausgabe in Datei
-checkbox.printtofile.mnemonic=U
+checkbox.collate=So&rtieren
+checkbox.jobsheets=&Bannerseite
+checkbox.printtofile=A&usgabe in Datei
 #
 dialog.printtitle=Drucken
 dialog.pstitle=Seite einrichten
@@ -33,70 +29,42 @@
 dialog.writeerror=Schreiben in Datei nicht m\u00F6glich:
 #
 label.info=Info:
-label.jobname=Job-Name:
-label.jobname.mnemonic=J
-label.numcopies=Anzahl Kopien:
-label.numcopies.mnemonic=K
-label.priority=Priorit\u00E4t:
-label.priority.mnemonic=R
-label.psname=Name:
-label.psname.mnemonic=N
+label.jobname=&Job-Name:
+label.numcopies=Anzahl &Kopien:
+label.priority=P&riorit\u00E4t:
+label.psname=&Name:
 label.pstype=Typ:
 label.rangeto=Bis
-label.size=Gr\u00F6\u00DFe:
-label.size.mnemonic=E
-label.source=Quelle:
-label.source.mnemonic=U
+label.size=Gr\u00F6\u00DF&e:
+label.source=Q&uelle:
 label.status=Status:
-label.username=Benutzername:
-label.username.mnemonic=U
+label.username=Ben&utzername:
 label.millimetres=(mm)
 label.inches=(Zoll)
-label.topmargin=oben
-label.topmargin.mnemonic=O
-label.bottommargin=unten
-label.bottommargin.mnemonic=N
-label.leftmargin=links
-label.leftmargin.mnemonic=L
-label.rightmargin=rechts
-label.rightmargin.mnemonic=R
+label.topmargin=&oben
+label.bottommargin=u&nten
+label.leftmargin=&links
+label.rightmargin=&rechts
 #
-radiobutton.color=Farbe
-radiobutton.color.mnemonic=F
-radiobutton.draftq=Entwurf
-radiobutton.draftq.mnemonic=W
-radiobutton.duplex=Duplex
-radiobutton.duplex.mnemonic=P
-radiobutton.highq=Hoch
-radiobutton.highq.mnemonic=H
-radiobutton.landscape=Querformat
-radiobutton.landscape.mnemonic=Q
-radiobutton.monochrome=Monochrom
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=Normal
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=Einseitig
-radiobutton.oneside.mnemonic=E
-radiobutton.portrait=Hochformat
-radiobutton.portrait.mnemonic=H
-radiobutton.rangeall=Alle
-radiobutton.rangeall.mnemonic=L
-radiobutton.rangepages=Seiten
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=Umgekehrtes Querformat
-radiobutton.revlandscape.mnemonic=M
-radiobutton.revportrait=Umgekehrtes Hochformat
-radiobutton.revportrait.mnemonic=K
-radiobutton.tumble=Kalenderdruck
-radiobutton.tumble.mnemonic=K
+radiobutton.color=&Farbe
+radiobutton.draftq=Ent&wurf
+radiobutton.duplex=Du&plex
+radiobutton.highq=&Hoch
+radiobutton.landscape=&Querformat
+radiobutton.monochrome=&Monochrom
+radiobutton.normalq=&Normal
+radiobutton.oneside=&Einseitig
+radiobutton.portrait=&Hochformat
+radiobutton.rangeall=A&lle
+radiobutton.rangepages=S&eiten
+radiobutton.revlandscape=U&mgekehrtes Querformat
+radiobutton.revportrait=Umge&kehrtes Hochformat
+radiobutton.tumble=&Kalenderdruck
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=Darstellung
-tab.appearance.vkMnemonic=68
-tab.general=Allgemein
-tab.general.vkMnemonic=65
-tab.pagesetup=Seite einrichten
-tab.pagesetup.vkMnemonic=83
+tab.appearance=&Darstellung
+tab.general=&Allgemein
+tab.pagesetup=&Seite einrichten
 #
 error.pagerange=Ung\u00FCltiger Seitenbereich. Geben Sie die Werte erneut ein (Beispiel: 1-3,5,7-10)
 error.destination=Ung\u00FCltiger Dateiname. Wiederholen Sie den Vorgang
--- a/jdk/src/share/classes/sun/print/resources/serviceui_es.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_es.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=Cancelar
 button.ok=Aceptar
 button.print=Imprimir
-button.properties=Propiedades...
-button.properties.mnemonic=R
+button.properties=P&ropiedades...
 #
-checkbox.collate=Intercalar
-checkbox.collate.mnemonic=C
-checkbox.jobsheets=P\u00E1gina de R\u00F3tulo
-checkbox.jobsheets.mnemonic=E
-checkbox.printtofile=Imprimir en Archivo
-checkbox.printtofile.mnemonic=M
+checkbox.collate=Inter&calar
+checkbox.jobsheets=P\u00E1gina d&e R\u00F3tulo
+checkbox.printtofile=I&mprimir en Archivo
 #
 dialog.printtitle=Imprimir
 dialog.pstitle=Preparar P\u00E1gina
@@ -33,70 +29,42 @@
 dialog.writeerror=No se puede escribir en el archivo:
 #
 label.info=Informaci\u00F3n:
-label.jobname=Nombre del Trabajo:
-label.jobname.mnemonic=T
-label.numcopies=N\u00FAmero de Copias:
-label.numcopies.mnemonic=O
-label.priority=Prioridad:
-label.priority.mnemonic=I
-label.psname=Nombre:
-label.psname.mnemonic=N
+label.jobname=Nombre del &Trabajo:
+label.numcopies=N\u00FAmer&o de Copias:
+label.priority=Pr&ioridad:
+label.psname=&Nombre:
 label.pstype=Tipo:
 label.rangeto=A
-label.size=Tama\u00F1o:
-label.size.mnemonic=T
+label.size=&Tama\u00F1o:
 label.source=Origen:
-label.source.mnemonic=O
 label.status=Estado:
-label.username=Usuario:
-label.username.mnemonic=S
+label.username=U&suario:
 label.millimetres=(mm)
 label.inches=(pulg.)
 label.topmargin=superior
-label.topmargin.mnemonic=S
-label.bottommargin=inferior
-label.bottommargin.mnemonic=F
-label.leftmargin=izquierdo
-label.leftmargin.mnemonic=Q
-label.rightmargin=derecho
-label.rightmargin.mnemonic=E
+label.bottommargin=in&ferior
+label.leftmargin=iz&quierdo
+label.rightmargin=d&erecho
 #
-radiobutton.color=Color
-radiobutton.color.mnemonic=C
-radiobutton.draftq=Borrador
-radiobutton.draftq.mnemonic=R
-radiobutton.duplex=D\u00FAplex
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=Alta
-radiobutton.highq.mnemonic=L
-radiobutton.landscape=Horizontal
-radiobutton.landscape.mnemonic=Z
-radiobutton.monochrome=Monocromo
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=Normal
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=Una Cara
-radiobutton.oneside.mnemonic=U
-radiobutton.portrait=Vertical
-radiobutton.portrait.mnemonic=V
-radiobutton.rangeall=Todo
-radiobutton.rangeall.mnemonic=T
-radiobutton.rangepages=P\u00E1ginas
-radiobutton.rangepages.mnemonic=G
-radiobutton.revlandscape=Horizontal Inverso
-radiobutton.revlandscape.mnemonic=H
-radiobutton.revportrait=Vertical Inverso
-radiobutton.revportrait.mnemonic=R
-radiobutton.tumble=Cambio de Cara
-radiobutton.tumble.mnemonic=B
+radiobutton.color=&Color
+radiobutton.draftq=Bo&rrador
+radiobutton.duplex=&D\u00FAplex
+radiobutton.highq=A&lta
+radiobutton.landscape=Hori&zontal
+radiobutton.monochrome=&Monocromo
+radiobutton.normalq=&Normal
+radiobutton.oneside=&Una Cara
+radiobutton.portrait=&Vertical
+radiobutton.rangeall=&Todo
+radiobutton.rangepages=P\u00E1&ginas
+radiobutton.revlandscape=&Horizontal Inverso
+radiobutton.revportrait=Ve&rtical Inverso
+radiobutton.tumble=Cam&bio de Cara
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=Apariencia
-tab.appearance.vkMnemonic=65
-tab.general=General
-tab.general.vkMnemonic=71
-tab.pagesetup=Preparar P\u00E1gina
-tab.pagesetup.vkMnemonic=80
+tab.appearance=&Apariencia
+tab.general=&General
+tab.pagesetup=&Preparar P\u00E1gina
 #
 error.pagerange=Rango de p\u00E1ginas no v\u00E1lido; vuelva a introducir los valores (por ejemplo, 1-3, 5, 7-10)
 error.destination=Nombre de archivo no v\u00E1lido; int\u00E9ntelo de nuevo
--- a/jdk/src/share/classes/sun/print/resources/serviceui_fr.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_fr.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=Annuler
 button.ok=OK
 button.print=Imprimer
-button.properties=Propri\u00E9t\u00E9s...
-button.properties.mnemonic=R
+button.properties=P&ropri\u00E9t\u00E9s...
 #
-checkbox.collate=Collationner
-checkbox.collate.mnemonic=C
-checkbox.jobsheets=Page de banni\u00E8re
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=Imprimer dans un fichier
-checkbox.printtofile.mnemonic=F
+checkbox.collate=&Collationner
+checkbox.jobsheets=Page de &banni\u00E8re
+checkbox.printtofile=Imprimer dans un &fichier
 #
 dialog.printtitle=Imprimer
 dialog.pstitle=Mise en page
@@ -33,70 +29,42 @@
 dialog.writeerror=Impossible d'\u00E9crire dans le fichier :
 #
 label.info=Infos :
-label.jobname=Nom du travail :
-label.jobname.mnemonic=T
-label.numcopies=Nombre de copies :
-label.numcopies.mnemonic=O
-label.priority=Priorit\u00E9 :
-label.priority.mnemonic=R
-label.psname=Nom :
-label.psname.mnemonic=N
+label.jobname=Nom du &travail :
+label.numcopies=N&ombre de copies :
+label.priority=P&riorit\u00E9 :
+label.psname=&Nom :
 label.pstype=Type :
 label.rangeto=A
-label.size=Taille :
-label.size.mnemonic=L
-label.source=Source :
-label.source.mnemonic=C
+label.size=Tai&lle :
+label.source=Sour&ce :
 label.status=Statut :
-label.username=Nom utilisateur :
-label.username.mnemonic=O
+label.username=N&om utilisateur :
 label.millimetres=(mm)
 label.inches=(po)
-label.topmargin=haut
-label.topmargin.mnemonic=H
-label.bottommargin=bas
-label.bottommargin.mnemonic=B
-label.leftmargin=gauche
-label.leftmargin.mnemonic=G
-label.rightmargin=droite
-label.rightmargin.mnemonic=D
+label.topmargin=&haut
+label.bottommargin=&bas
+label.leftmargin=&gauche
+label.rightmargin=&droite
 #
-radiobutton.color=Couleur
-radiobutton.color.mnemonic=C
-radiobutton.draftq=Brouillon
-radiobutton.draftq.mnemonic=L
-radiobutton.duplex=Duplex
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=Max.
-radiobutton.highq.mnemonic=X
-radiobutton.landscape=Paysage
-radiobutton.landscape.mnemonic=Y
-radiobutton.monochrome=Monochrome
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=Normal
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=Un c\u00F4t\u00E9
-radiobutton.oneside.mnemonic=U
-radiobutton.portrait=Portrait
-radiobutton.portrait.mnemonic=P
-radiobutton.rangeall=Tout
-radiobutton.rangeall.mnemonic=T
-radiobutton.rangepages=Pages
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=Paysage invers\u00E9
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=Portrait invers\u00E9
-radiobutton.revportrait.mnemonic=I
-radiobutton.tumble=T\u00EAte-b\u00EAche
-radiobutton.tumble.mnemonic=T
+radiobutton.color=&Couleur
+radiobutton.draftq=Broui&llon
+radiobutton.duplex=&Duplex
+radiobutton.highq=Ma&x.
+radiobutton.landscape=Pa&ysage
+radiobutton.monochrome=&Monochrome
+radiobutton.normalq=&Normal
+radiobutton.oneside=&Un c\u00F4t\u00E9
+radiobutton.portrait=&Portrait
+radiobutton.rangeall=&Tout
+radiobutton.rangepages=Pag&es
+radiobutton.revlandscape=Paysage i&nvers\u00E9
+radiobutton.revportrait=Portra&it invers\u00E9
+radiobutton.tumble=&T\u00EAte-b\u00EAche
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=Apparence
-tab.appearance.vkMnemonic=65
-tab.general=G\u00E9n\u00E9ral
-tab.general.vkMnemonic=71
-tab.pagesetup=Mise en page
-tab.pagesetup.vkMnemonic=83
+tab.appearance=&Apparence
+tab.general=&G\u00E9n\u00E9ral
+tab.pagesetup=Mi&se en page
 #
 error.pagerange=Plage de pages non valide. Sp\u00E9cifiez les valeurs de nouveau (ex. : 1-3,5,7-10)
 error.destination=Nom de fichier non valide ; recommencez
--- a/jdk/src/share/classes/sun/print/resources/serviceui_it.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_it.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=Annulla
 button.ok=OK
 button.print=Stampa
-button.properties=Propriet\u00E0...
-button.properties.mnemonic=R
+button.properties=P&ropriet\u00E0...
 #
-checkbox.collate=Fascicola
-checkbox.collate.mnemonic=L
-checkbox.jobsheets=Pagina banner
-checkbox.jobsheets.mnemonic=P
-checkbox.printtofile=Stampa su file
-checkbox.printtofile.mnemonic=F
+checkbox.collate=Fascico&la
+checkbox.jobsheets=&Pagina banner
+checkbox.printtofile=Stampa su &file
 #
 dialog.printtitle=Stampa
 dialog.pstitle=Imposta pagina
@@ -33,70 +29,42 @@
 dialog.writeerror=Impossibile scrivere nel file:
 #
 label.info=Informazioni:
-label.jobname=Nome job:
-label.jobname.mnemonic=J
-label.numcopies=Numero di copie:
-label.numcopies.mnemonic=O
-label.priority=Priorit\u00E0:
-label.priority.mnemonic=I
-label.psname=Nome:
-label.psname.mnemonic=N
+label.jobname=Nome &job:
+label.numcopies=Numer&o di copie:
+label.priority=Pr&iorit\u00E0:
+label.psname=&Nome:
 label.pstype=Tipo:
 label.rangeto=A
-label.size=Dimensioni:
-label.size.mnemonic=M
-label.source=Origine:
-label.source.mnemonic=R
+label.size=Di&mensioni:
+label.source=O&rigine:
 label.status=Stato:
-label.username=Nome utente:
-label.username.mnemonic=U
+label.username=Nome &utente:
 label.millimetres=(mm)
 label.inches=(poll.)
-label.topmargin=superiore
-label.topmargin.mnemonic=P
-label.bottommargin=inferiore
-label.bottommargin.mnemonic=F
-label.leftmargin=sinistro
-label.leftmargin.mnemonic=T
-label.rightmargin=destro
-label.rightmargin.mnemonic=D
+label.topmargin=su&periore
+label.bottommargin=in&feriore
+label.leftmargin=sinis&tro
+label.rightmargin=&destro
 #
-radiobutton.color=Colore
-radiobutton.color.mnemonic=C
-radiobutton.draftq=Bozza
-radiobutton.draftq.mnemonic=B
-radiobutton.duplex=Fronte retro
-radiobutton.duplex.mnemonic=R
-radiobutton.highq=Alta
-radiobutton.highq.mnemonic=L
-radiobutton.landscape=Orizzontale
-radiobutton.landscape.mnemonic=L
-radiobutton.monochrome=Monocromatico
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=Normale
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=Un lato
-radiobutton.oneside.mnemonic=O
-radiobutton.portrait=Verticale
-radiobutton.portrait.mnemonic=V
-radiobutton.rangeall=Tutto
-radiobutton.rangeall.mnemonic=U
-radiobutton.rangepages=Pagine
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=Orizzontale capovolto
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=Verticale capovolto
-radiobutton.revportrait.mnemonic=I
-radiobutton.tumble=Lato corto
-radiobutton.tumble.mnemonic=T
+radiobutton.color=&Colore
+radiobutton.draftq=&Bozza
+radiobutton.duplex=F&ronte retro
+radiobutton.highq=A&lta
+radiobutton.landscape=Orizzonta&le
+radiobutton.monochrome=&Monocromatico
+radiobutton.normalq=&Normale
+radiobutton.oneside=Un lat&o
+radiobutton.portrait=&Verticale
+radiobutton.rangeall=T&utto
+radiobutton.rangepages=Pagin&e
+radiobutton.revlandscape=Orizzo&ntale capovolto
+radiobutton.revportrait=Vert&icale capovolto
+radiobutton.tumble=La&to corto
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=Aspetto
-tab.appearance.vkMnemonic=65
-tab.general=Generale
-tab.general.vkMnemonic=71
-tab.pagesetup=Imposta pagina
-tab.pagesetup.vkMnemonic=83
+tab.appearance=&Aspetto
+tab.general=&Generale
+tab.pagesetup=Impo&sta pagina
 #
 error.pagerange=Intervallo pagine non valido; immettere nuovamente i valori (ad es. 1-3,5,7-10)
 error.destination=Nome file non valido; riprovare
--- a/jdk/src/share/classes/sun/print/resources/serviceui_ja.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_ja.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=\u53D6\u6D88
 button.ok=OK
 button.print=\u5370\u5237
-button.properties=\u30D7\u30ED\u30D1\u30C6\u30A3(R)...
-button.properties.mnemonic=R
+button.properties=\u30D7\u30ED\u30D1\u30C6\u30A3(&R)...
 #
-checkbox.collate=\u4E01\u5408\u3044(C)
-checkbox.collate.mnemonic=C
-checkbox.jobsheets=\u30D0\u30CA\u30FC\u30FB\u30DA\u30FC\u30B8(B)
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=\u30D5\u30A1\u30A4\u30EB\u306B\u51FA\u529B(F)
-checkbox.printtofile.mnemonic=F
+checkbox.collate=\u4E01\u5408\u3044(&C)
+checkbox.jobsheets=\u30D0\u30CA\u30FC\u30FB\u30DA\u30FC\u30B8(&B)
+checkbox.printtofile=\u30D5\u30A1\u30A4\u30EB\u306B\u51FA\u529B(&F)
 #
 dialog.printtitle=\u5370\u5237
 dialog.pstitle=\u30DA\u30FC\u30B8\u8A2D\u5B9A
@@ -33,70 +29,42 @@
 dialog.writeerror=\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u304D\u8FBC\u3081\u307E\u305B\u3093:
 #
 label.info=\u60C5\u5831:
-label.jobname=\u30B8\u30E7\u30D6\u540D(J):
-label.jobname.mnemonic=J
-label.numcopies=\u5370\u5237\u90E8\u6570(O):
-label.numcopies.mnemonic=O
-label.priority=\u512A\u5148\u5EA6(R):
-label.priority.mnemonic=R
-label.psname=\u540D\u524D(N):
-label.psname.mnemonic=N
+label.jobname=\u30B8\u30E7\u30D6\u540D(&J):
+label.numcopies=\u5370\u5237\u90E8\u6570(&O):
+label.priority=\u512A\u5148\u5EA6(&R):
+label.psname=\u540D\u524D(&N):
 label.pstype=\u30BF\u30A4\u30D7:
 label.rangeto=\u5370\u5237\u7BC4\u56F2
-label.size=\u30B5\u30A4\u30BA(Z):
-label.size.mnemonic=Z
-label.source=\u30BD\u30FC\u30B9(C):
-label.source.mnemonic=C
+label.size=\u30B5\u30A4\u30BA(&Z):
+label.source=\u30BD\u30FC\u30B9(&C):
 label.status=\u72B6\u614B:
-label.username=\u30E6\u30FC\u30B6\u30FC\u540D(U):
-label.username.mnemonic=U
+label.username=\u30E6\u30FC\u30B6\u30FC\u540D(&U):
 label.millimetres=(mm)
 label.inches=(in)
-label.topmargin=\u4E0A(T)
-label.topmargin.mnemonic=T
-label.bottommargin=\u4E0B(B)
-label.bottommargin.mnemonic=B
-label.leftmargin=\u5DE6(F)
-label.leftmargin.mnemonic=F
-label.rightmargin=\u53F3(R)
-label.rightmargin.mnemonic=R
+label.topmargin=\u4E0A(&T)
+label.bottommargin=\u4E0B(&B)
+label.leftmargin=\u5DE6(&F)
+label.rightmargin=\u53F3(&R)
 #
-radiobutton.color=\u30AB\u30E9\u30FC(C)
-radiobutton.color.mnemonic=C
-radiobutton.draftq=\u30C9\u30E9\u30D5\u30C8(F)
-radiobutton.draftq.mnemonic=F
-radiobutton.duplex=\u4E21\u9762(D)
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=\u9AD8(H)
-radiobutton.highq.mnemonic=H
-radiobutton.landscape=\u6A2A(L)
-radiobutton.landscape.mnemonic=L
-radiobutton.monochrome=\u30E2\u30CE\u30AF\u30ED(M)
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=\u6A19\u6E96(N)
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=\u7247\u9762(O)
-radiobutton.oneside.mnemonic=O
-radiobutton.portrait=\u7E26(P)
-radiobutton.portrait.mnemonic=P
-radiobutton.rangeall=\u3059\u3079\u3066(L)
-radiobutton.rangeall.mnemonic=L
-radiobutton.rangepages=\u30DA\u30FC\u30B8(E)
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=\u30E9\u30F3\u30C9\u30B9\u30B1\u30FC\u30D7(\u53CD\u8EE2)(N)
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=\u30DD\u30FC\u30C8\u30EC\u30A4\u30C8(\u53CD\u8EE2)(I)
-radiobutton.revportrait.mnemonic=I
-radiobutton.tumble=\u53CD\u8EE2(T)
-radiobutton.tumble.mnemonic=T
+radiobutton.color=\u30AB\u30E9\u30FC(&C)
+radiobutton.draftq=\u30C9\u30E9\u30D5\u30C8(&F)
+radiobutton.duplex=\u4E21\u9762(&D)
+radiobutton.highq=\u9AD8(&H)
+radiobutton.landscape=\u6A2A(&L)
+radiobutton.monochrome=\u30E2\u30CE\u30AF\u30ED(&M)
+radiobutton.normalq=\u6A19\u6E96(&N)
+radiobutton.oneside=\u7247\u9762(&O)
+radiobutton.portrait=\u7E26(&P)
+radiobutton.rangeall=\u3059\u3079\u3066(&L)
+radiobutton.rangepages=\u30DA\u30FC\u30B8(&E)
+radiobutton.revlandscape=\u30E9\u30F3\u30C9\u30B9\u30B1\u30FC\u30D7(\u53CD\u8EE2)(&N)
+radiobutton.revportrait=\u30DD\u30FC\u30C8\u30EC\u30A4\u30C8(\u53CD\u8EE2)(&I)
+radiobutton.tumble=\u53CD\u8EE2(&T)
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=\u5916\u89B3(A)
-tab.appearance.vkMnemonic=65
-tab.general=\u4E00\u822C(G)
-tab.general.vkMnemonic=71
-tab.pagesetup=\u30DA\u30FC\u30B8\u8A2D\u5B9A(S)
-tab.pagesetup.vkMnemonic=83
+tab.appearance=\u5916\u89B3(&A)
+tab.general=\u4E00\u822C(&G)
+tab.pagesetup=\u30DA\u30FC\u30B8\u8A2D\u5B9A(&S)
 #
 error.pagerange=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u7BC4\u56F2\u3002\u5024\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044(\u4F8B\u30011-3,5,7-10)
 error.destination=\u7121\u52B9\u306A\u30D5\u30A1\u30A4\u30EB\u540D\u3002\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044
--- a/jdk/src/share/classes/sun/print/resources/serviceui_ko.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_ko.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=\uCDE8\uC18C
 button.ok=\uD655\uC778
 button.print=\uC778\uC1C4
-button.properties=\uC18D\uC131(R)...
-button.properties.mnemonic=R
+button.properties=\uC18D\uC131(&R)...
 #
-checkbox.collate=\uD55C \uBD80\uC529 \uC778\uC1C4(C)
-checkbox.collate.mnemonic=C
-checkbox.jobsheets=\uBC30\uB108 \uD398\uC774\uC9C0(B)
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=\uD30C\uC77C\uB85C \uC778\uC1C4(F)
-checkbox.printtofile.mnemonic=F
+checkbox.collate=\uD55C \uBD80\uC529 \uC778\uC1C4(&C)
+checkbox.jobsheets=\uBC30\uB108 \uD398\uC774\uC9C0(&B)
+checkbox.printtofile=\uD30C\uC77C\uB85C \uC778\uC1C4(&F)
 #
 dialog.printtitle=\uC778\uC1C4
 dialog.pstitle=\uD398\uC774\uC9C0 \uC124\uC815
@@ -33,70 +29,42 @@
 dialog.writeerror=\uD30C\uC77C\uC5D0 \uC4F8 \uC218 \uC5C6\uC74C:
 #
 label.info=\uC815\uBCF4:
-label.jobname=\uC791\uC5C5 \uC774\uB984(J):
-label.jobname.mnemonic=J
-label.numcopies=\uB9E4\uC218(O):
-label.numcopies.mnemonic=O
-label.priority=\uC6B0\uC120\uC21C\uC704(R):
-label.priority.mnemonic=R
-label.psname=\uC774\uB984(N):
-label.psname.mnemonic=N
+label.jobname=\uC791\uC5C5 \uC774\uB984(&J):
+label.numcopies=\uB9E4\uC218(&O):
+label.priority=\uC6B0\uC120\uC21C\uC704(&R):
+label.psname=\uC774\uB984(&N):
 label.pstype=\uC720\uD615:
 label.rangeto=\uC885\uB8CC
-label.size=\uD06C\uAE30(Z):
-label.size.mnemonic=Z
-label.source=\uC18C\uC2A4(C):
-label.source.mnemonic=C
+label.size=\uD06C\uAE30(&Z):
+label.source=\uC18C\uC2A4(&C):
 label.status=\uC0C1\uD0DC:
-label.username=\uC0AC\uC6A9\uC790 \uC774\uB984(U):
-label.username.mnemonic=U
+label.username=\uC0AC\uC6A9\uC790 \uC774\uB984(&U):
 label.millimetres=(mm)
 label.inches=(\uC778\uCE58)
-label.topmargin=\uC704\uCABD(T)
-label.topmargin.mnemonic=T
-label.bottommargin=\uC544\uB798\uCABD(B)
-label.bottommargin.mnemonic=B
-label.leftmargin=\uC67C\uCABD(F)
-label.leftmargin.mnemonic=F
-label.rightmargin=\uC624\uB978\uCABD(R)
-label.rightmargin.mnemonic=R
+label.topmargin=\uC704\uCABD(&T)
+label.bottommargin=\uC544\uB798\uCABD(&B)
+label.leftmargin=\uC67C\uCABD(&F)
+label.rightmargin=\uC624\uB978\uCABD(&R)
 #
-radiobutton.color=\uC0C9\uC0C1(C)
-radiobutton.color.mnemonic=C
-radiobutton.draftq=\uCD08\uC548(F)
-radiobutton.draftq.mnemonic=F
-radiobutton.duplex=\uC591\uBA74(D)
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=\uB192\uC74C(H)
-radiobutton.highq.mnemonic=H
-radiobutton.landscape=\uAC00\uB85C(L)
-radiobutton.landscape.mnemonic=L
-radiobutton.monochrome=\uB2E8\uC0C9(M)
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=\uBCF4\uD1B5(N)
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=\uB2E8\uBA74(O)
-radiobutton.oneside.mnemonic=O
-radiobutton.portrait=\uC138\uB85C(P)
-radiobutton.portrait.mnemonic=P
-radiobutton.rangeall=\uC804\uCCB4(L)
-radiobutton.rangeall.mnemonic=L
-radiobutton.rangepages=\uD398\uC774\uC9C0(E)
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=\uAC00\uB85C \uBC18\uC804(N)
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=\uC138\uB85C \uBC18\uC804(I)
-radiobutton.revportrait.mnemonic=I
-radiobutton.tumble=\uD68C\uC804\uC2DD(T)
-radiobutton.tumble.mnemonic=T
+radiobutton.color=\uC0C9\uC0C1(&C)
+radiobutton.draftq=\uCD08\uC548(&F)
+radiobutton.duplex=\uC591\uBA74(&D)
+radiobutton.highq=\uB192\uC74C(&H)
+radiobutton.landscape=\uAC00\uB85C(&L)
+radiobutton.monochrome=\uB2E8\uC0C9(&M)
+radiobutton.normalq=\uBCF4\uD1B5(&N)
+radiobutton.oneside=\uB2E8\uBA74(&O)
+radiobutton.portrait=\uC138\uB85C(&P)
+radiobutton.rangeall=\uC804\uCCB4(&L)
+radiobutton.rangepages=\uD398\uC774\uC9C0(&E)
+radiobutton.revlandscape=\uAC00\uB85C \uBC18\uC804(&N)
+radiobutton.revportrait=\uC138\uB85C \uBC18\uC804(&I)
+radiobutton.tumble=\uD68C\uC804\uC2DD(&T)
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=\uBAA8\uC591(A)
-tab.appearance.vkMnemonic=65
-tab.general=\uC77C\uBC18 \uC0AC\uD56D(G)
-tab.general.vkMnemonic=71
-tab.pagesetup=\uD398\uC774\uC9C0 \uC124\uC815(S)
-tab.pagesetup.vkMnemonic=83
+tab.appearance=\uBAA8\uC591(&A)
+tab.general=\uC77C\uBC18 \uC0AC\uD56D(&G)
+tab.pagesetup=\uD398\uC774\uC9C0 \uC124\uC815(&S)
 #
 error.pagerange=\uBD80\uC801\uD569\uD55C \uD398\uC774\uC9C0 \uBC94\uC704: \uAC12\uC744 \uB2E4\uC2DC \uC785\uB825\uD558\uC2ED\uC2DC\uC624(\uC608: 1-3,5,7-10).
 error.destination=\uBD80\uC801\uD569\uD55C \uD30C\uC77C \uC774\uB984: \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC2ED\uC2DC\uC624.
--- a/jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=Cancelar
 button.ok=OK
 button.print=Imprimir
-button.properties=Propriedades...
-button.properties.mnemonic=D
+button.properties=Proprie&dades...
 #
-checkbox.collate=Agrupar
-checkbox.collate.mnemonic=R
-checkbox.jobsheets=P\u00E1gina com Banner
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=Imprimir em Arquivo
-checkbox.printtofile.mnemonic=I
+checkbox.collate=Ag&rupar
+checkbox.jobsheets=P\u00E1gina com &Banner
+checkbox.printtofile=&Imprimir em Arquivo
 #
 dialog.printtitle=Imprimir
 dialog.pstitle=Configura\u00E7\u00E3o da P\u00E1gina
@@ -33,70 +29,42 @@
 dialog.writeerror=N\u00E3o \u00E9 poss\u00EDvel gravar no arquivo:
 #
 label.info=Informa\u00E7\u00F5es:
-label.jobname=Nome do Job:
-label.jobname.mnemonic=J
-label.numcopies=N\u00FAmero de c\u00F3pias:
-label.numcopies.mnemonic=O
-label.priority=Prioridade:
-label.priority.mnemonic=P
-label.psname=Nome:
-label.psname.mnemonic=N
+label.jobname=Nome do &Job:
+label.numcopies=N\u00FAmer&o de c\u00F3pias:
+label.priority=&Prioridade:
+label.psname=&Nome:
 label.pstype=Tipo:
 label.rangeto=At\u00E9
-label.size=Tamanho:
-label.size.mnemonic=M
-label.source=Origem:
-label.source.mnemonic=O
+label.size=Ta&manho:
+label.source=&Origem:
 label.status=Status:
-label.username=Nome do Usu\u00E1rio:
-label.username.mnemonic=U
+label.username=Nome do &Usu\u00E1rio:
 label.millimetres=(mm)
 label.inches=(pol)
-label.topmargin=superior
-label.topmargin.mnemonic=S
-label.bottommargin=inferior
-label.bottommargin.mnemonic=I
-label.leftmargin=esquerda:
-label.leftmargin.mnemonic=Q
-label.rightmargin=direita
-label.rightmargin.mnemonic=D
+label.topmargin=&superior
+label.bottommargin=&inferior
+label.leftmargin=es&querda:
+label.rightmargin=&direita
 #
-radiobutton.color=Cor
-radiobutton.color.mnemonic=O
-radiobutton.draftq=Rascunho
-radiobutton.draftq.mnemonic=R
-radiobutton.duplex=Duplex
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=Alta
-radiobutton.highq.mnemonic=T
-radiobutton.landscape=Paisagem
-radiobutton.landscape.mnemonic=P
-radiobutton.monochrome=Monocrom\u00E1tico
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=Normal
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=Um Lado
-radiobutton.oneside.mnemonic=L
-radiobutton.portrait=Retrato
-radiobutton.portrait.mnemonic=R
-radiobutton.rangeall=Tudo
-radiobutton.rangeall.mnemonic=U
-radiobutton.rangepages=P\u00E1ginas
-radiobutton.rangepages.mnemonic=P
-radiobutton.revlandscape=Paisagem Invertida
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=Retrato Invertido
-radiobutton.revportrait.mnemonic=E
-radiobutton.tumble=Virar
-radiobutton.tumble.mnemonic=V
+radiobutton.color=C&or
+radiobutton.draftq=&Rascunho
+radiobutton.duplex=&Duplex
+radiobutton.highq=Al&ta
+radiobutton.landscape=&Paisagem
+radiobutton.monochrome=&Monocrom\u00E1tico
+radiobutton.normalq=&Normal
+radiobutton.oneside=Um &Lado
+radiobutton.portrait=&Retrato
+radiobutton.rangeall=T&udo
+radiobutton.rangepages=&P\u00E1ginas
+radiobutton.revlandscape=Paisagem I&nvertida
+radiobutton.revportrait=R&etrato Invertido
+radiobutton.tumble=&Virar
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=Apar\u00EAncia
-tab.appearance.vkMnemonic=65
-tab.general=Geral
-tab.general.vkMnemonic=71
-tab.pagesetup=Configura\u00E7\u00E3o de P\u00E1gina
-tab.pagesetup.vkMnemonic=67
+tab.appearance=&Apar\u00EAncia
+tab.general=&Geral
+tab.pagesetup=&Configura\u00E7\u00E3o de P\u00E1gina
 #
 error.pagerange=Faixa de p\u00E1ginas inv\u00E1lida; insira novamente os valores (por exemplo, 1-3,5,7-10)
 error.destination=Nome de arquivo inv\u00E1lido; tente novamente
--- a/jdk/src/share/classes/sun/print/resources/serviceui_sv.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_sv.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=Avbryt
 button.ok=OK
 button.print=Skriv ut
-button.properties=Egenskaper...
-button.properties.mnemonic=R
+button.properties=Egenskape&r...
 #
-checkbox.collate=Sortera
-checkbox.collate.mnemonic=T
-checkbox.jobsheets=F\u00F6rs\u00E4ttsblad
-checkbox.jobsheets.mnemonic=R
-checkbox.printtofile=Skriv ut till fil
-checkbox.printtofile.mnemonic=K
+checkbox.collate=Sor&tera
+checkbox.jobsheets=F\u00F6&rs\u00E4ttsblad
+checkbox.printtofile=S&kriv ut till fil
 #
 dialog.printtitle=Skriv ut
 dialog.pstitle=Utskriftsformat
@@ -33,70 +29,42 @@
 dialog.writeerror=Kan inte skriva till filen:
 #
 label.info=Information:
-label.jobname=Utskrift:
-label.jobname.mnemonic=U
-label.numcopies=Antal exemplar:
-label.numcopies.mnemonic=E
-label.priority=Prioritet:
-label.priority.mnemonic=R
-label.psname=Namn:
-label.psname.mnemonic=N
+label.jobname=&Utskrift:
+label.numcopies=Antal &exemplar:
+label.priority=P&rioritet:
+label.psname=&Namn:
 label.pstype=Typ:
 label.rangeto=Till
-label.size=Storlek:
-label.size.mnemonic=O
-label.source=K\u00E4lla:
-label.source.mnemonic=K
+label.size=St&orlek:
+label.source=&K\u00E4lla:
 label.status=Status:
-label.username=Anv\u00E4ndarnamn:
-label.username.mnemonic=N
+label.username=A&nv\u00E4ndarnamn:
 label.millimetres=(mm)
 label.inches=(tum)
-label.topmargin=\u00F6verkant
-label.topmargin.mnemonic=R
-label.bottommargin=nederkant
-label.bottommargin.mnemonic=N
-label.leftmargin=v\u00E4nster
-label.leftmargin.mnemonic=V
-label.rightmargin=h\u00F6ger
-label.rightmargin.mnemonic=H
+label.topmargin=\u00F6ve&rkant
+label.bottommargin=&nederkant
+label.leftmargin=&v\u00E4nster
+label.rightmargin=&h\u00F6ger
 #
-radiobutton.color=F\u00E4rg
-radiobutton.color.mnemonic=G
-radiobutton.draftq=Utkast
-radiobutton.draftq.mnemonic=K
-radiobutton.duplex=Dubbelsidig
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=H\u00F6g
-radiobutton.highq.mnemonic=H
-radiobutton.landscape=Liggande
-radiobutton.landscape.mnemonic=L
-radiobutton.monochrome=Monokrom
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=Normal
-radiobutton.normalq.mnemonic=O
-radiobutton.oneside=Ensidig
-radiobutton.oneside.mnemonic=E
-radiobutton.portrait=St\u00E5ende
-radiobutton.portrait.mnemonic=D
-radiobutton.rangeall=Alla
-radiobutton.rangeall.mnemonic=L
-radiobutton.rangepages=Sidor
-radiobutton.rangepages.mnemonic=D
-radiobutton.revlandscape=Omv\u00E4nt liggande
-radiobutton.revlandscape.mnemonic=G
-radiobutton.revportrait=Omv\u00E4nt st\u00E5ende
-radiobutton.revportrait.mnemonic=M
-radiobutton.tumble=V\u00E4nd
-radiobutton.tumble.mnemonic=V
+radiobutton.color=F\u00E4r&g
+radiobutton.draftq=Ut&kast
+radiobutton.duplex=&Dubbelsidig
+radiobutton.highq=&H\u00F6g
+radiobutton.landscape=&Liggande
+radiobutton.monochrome=&Monokrom
+radiobutton.normalq=N&ormal
+radiobutton.oneside=&Ensidig
+radiobutton.portrait=St\u00E5en&de
+radiobutton.rangeall=A&lla
+radiobutton.rangepages=Si&dor
+radiobutton.revlandscape=Omv\u00E4nt li&ggande
+radiobutton.revportrait=O&mv\u00E4nt st\u00E5ende
+radiobutton.tumble=&V\u00E4nd
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=Format
-tab.appearance.vkMnemonic=70
-tab.general=Allm\u00E4nt
-tab.general.vkMnemonic=65
-tab.pagesetup=Utskriftsformat
-tab.pagesetup.vkMnemonic=83
+tab.appearance=&Format
+tab.general=&Allm\u00E4nt
+tab.pagesetup=Ut&skriftsformat
 #
 error.pagerange=Ogiltigt sidintervall. Skriv in v\u00E4rdena igen (t ex 1-3,5,7-10)
 error.destination=Ogiltigt filnamn. F\u00F6rs\u00F6k igen.
--- a/jdk/src/share/classes/sun/print/resources/serviceui_zh_CN.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_zh_CN.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=\u53D6\u6D88
 button.ok=\u786E\u5B9A
 button.print=\u6253\u5370
-button.properties=\u5C5E\u6027(R)...
-button.properties.mnemonic=R
+button.properties=\u5C5E\u6027(&R)...
 #
-checkbox.collate=\u9010\u4EFD\u6253\u5370(C)
-checkbox.collate.mnemonic=C
-checkbox.jobsheets=\u6807\u5E1C\u9875(B)
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=\u6253\u5370\u5230\u6587\u4EF6(F)
-checkbox.printtofile.mnemonic=F
+checkbox.collate=\u9010\u4EFD\u6253\u5370(&C)
+checkbox.jobsheets=\u6807\u5E1C\u9875(&B)
+checkbox.printtofile=\u6253\u5370\u5230\u6587\u4EF6(&F)
 #
 dialog.printtitle=\u6253\u5370
 dialog.pstitle=\u9875\u9762\u8BBE\u7F6E
@@ -33,70 +29,42 @@
 dialog.writeerror=\u65E0\u6CD5\u5199\u5165\u6587\u4EF6:
 #
 label.info=\u4FE1\u606F:
-label.jobname=\u4F5C\u4E1A\u540D(J):
-label.jobname.mnemonic=J
-label.numcopies=\u6253\u5370\u4EFD\u6570(O):
-label.numcopies.mnemonic=O
-label.priority=\u4F18\u5148\u7EA7(R):
-label.priority.mnemonic=R
-label.psname=\u540D\u79F0(N):
-label.psname.mnemonic=N
+label.jobname=\u4F5C\u4E1A\u540D(&J):
+label.numcopies=\u6253\u5370\u4EFD\u6570(&O):
+label.priority=\u4F18\u5148\u7EA7(&R):
+label.psname=\u540D\u79F0(&N):
 label.pstype=\u7C7B\u578B:
 label.rangeto=\u81F3
-label.size=\u5927\u5C0F(Z):
-label.size.mnemonic=Z
-label.source=\u6765\u6E90(C):
-label.source.mnemonic=C
+label.size=\u5927\u5C0F(&Z):
+label.source=\u6765\u6E90(&C):
 label.status=\u72B6\u6001:
-label.username=\u7528\u6237\u540D(U):
-label.username.mnemonic=U
+label.username=\u7528\u6237\u540D(&U):
 label.millimetres=(\u6BEB\u7C73)
 label.inches=(\u82F1\u5BF8)
-label.topmargin=\u4E0A\u8FB9\u8DDD(T)
-label.topmargin.mnemonic=T
-label.bottommargin=\u4E0B\u8FB9\u8DDD(B)
-label.bottommargin.mnemonic=B
-label.leftmargin=\u5DE6\u8FB9\u8DDD(F)
-label.leftmargin.mnemonic=F
-label.rightmargin=\u53F3\u8FB9\u8DDD(R)
-label.rightmargin.mnemonic=R
+label.topmargin=\u4E0A\u8FB9\u8DDD(&T)
+label.bottommargin=\u4E0B\u8FB9\u8DDD(&B)
+label.leftmargin=\u5DE6\u8FB9\u8DDD(&F)
+label.rightmargin=\u53F3\u8FB9\u8DDD(&R)
 #
-radiobutton.color=\u989C\u8272(C)
-radiobutton.color.mnemonic=C
-radiobutton.draftq=\u8349\u56FE(F)
-radiobutton.draftq.mnemonic=F
-radiobutton.duplex=\u53CC\u9762\u6253\u5370(D)
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=\u9AD8(H)
-radiobutton.highq.mnemonic=H
-radiobutton.landscape=\u6A2A\u5411(L)
-radiobutton.landscape.mnemonic=L
-radiobutton.monochrome=\u5355\u8272(M)
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=\u6B63\u5E38(N)
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=\u5355\u9762(O)
-radiobutton.oneside.mnemonic=O
-radiobutton.portrait=\u7EB5\u5411(P)
-radiobutton.portrait.mnemonic=P
-radiobutton.rangeall=\u5168\u90E8(L)
-radiobutton.rangeall.mnemonic=L
-radiobutton.rangepages=\u9875\u7801\u8303\u56F4(E)
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=\u6A2A\u5411\u53CD\u9762\u6253\u5370(N)
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=\u7EB5\u5411\u53CD\u9762\u6253\u5370(I)
-radiobutton.revportrait.mnemonic=I
-radiobutton.tumble=\u7FFB\u8F6C(T)
-radiobutton.tumble.mnemonic=T
+radiobutton.color=\u989C\u8272(&C)
+radiobutton.draftq=\u8349\u56FE(&F)
+radiobutton.duplex=\u53CC\u9762\u6253\u5370(&D)
+radiobutton.highq=\u9AD8(&H)
+radiobutton.landscape=\u6A2A\u5411(&L)
+radiobutton.monochrome=\u5355\u8272(&M)
+radiobutton.normalq=\u6B63\u5E38(&N)
+radiobutton.oneside=\u5355\u9762(&O)
+radiobutton.portrait=\u7EB5\u5411(&P)
+radiobutton.rangeall=\u5168\u90E8(&L)
+radiobutton.rangepages=\u9875\u7801\u8303\u56F4(&E)
+radiobutton.revlandscape=\u6A2A\u5411\u53CD\u9762\u6253\u5370(&N)
+radiobutton.revportrait=\u7EB5\u5411\u53CD\u9762\u6253\u5370(&I)
+radiobutton.tumble=\u7FFB\u8F6C(&T)
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=\u5916\u89C2(A)
-tab.appearance.vkMnemonic=65
-tab.general=\u4E00\u822C\u4FE1\u606F(G)
-tab.general.vkMnemonic=71
-tab.pagesetup=\u9875\u9762\u8BBE\u7F6E(S)
-tab.pagesetup.vkMnemonic=83
+tab.appearance=\u5916\u89C2(&A)
+tab.general=\u4E00\u822C\u4FE1\u606F(&G)
+tab.pagesetup=\u9875\u9762\u8BBE\u7F6E(&S)
 #
 error.pagerange=\u65E0\u6548\u7684\u9875\u9762\u8303\u56F4; \u8BF7\u91CD\u65B0\u8F93\u5165\u6570\u503C (\u4F8B\u5982 1-3,5,7-10)
 error.destination=\u65E0\u6548\u7684\u6587\u4EF6\u540D; \u8BF7\u91CD\u8BD5
--- a/jdk/src/share/classes/sun/print/resources/serviceui_zh_TW.properties	Wed Jul 05 18:09:43 2017 +0200
+++ b/jdk/src/share/classes/sun/print/resources/serviceui_zh_TW.properties	Wed May 02 09:53:29 2012 -0700
@@ -14,15 +14,11 @@
 button.cancel=\u53D6\u6D88
 button.ok=\u78BA\u5B9A
 button.print=\u5217\u5370
-button.properties=\u7279\u6027(R)...
-button.properties.mnemonic=R
+button.properties=\u7279\u6027(&R)...
 #
-checkbox.collate=\u7406\u5E8F(C)
-checkbox.collate.mnemonic=C
-checkbox.jobsheets=\u6A19\u984C\u9801(B)
-checkbox.jobsheets.mnemonic=B
-checkbox.printtofile=\u5217\u5370\u81F3\u6A94\u6848(F)
-checkbox.printtofile.mnemonic=F
+checkbox.collate=\u7406\u5E8F(&C)
+checkbox.jobsheets=\u6A19\u984C\u9801(&B)
+checkbox.printtofile=\u5217\u5370\u81F3\u6A94\u6848(&F)
 #
 dialog.printtitle=\u5217\u5370
 dialog.pstitle=\u9801\u9762\u8A2D\u5B9A
@@ -33,70 +29,42 @@
 dialog.writeerror=\u7121\u6CD5\u5BEB\u5165\u81F3\u6A94\u6848:
 #
 label.info=\u8CC7\u8A0A:
-label.jobname=\u5DE5\u4F5C\u540D\u7A31(J):
-label.jobname.mnemonic=J
-label.numcopies=\u5217\u5370\u4EFD\u6578(O):
-label.numcopies.mnemonic=O
-label.priority=\u512A\u5148\u6B0A(R):
-label.priority.mnemonic=R
-label.psname=\u540D\u7A31(N):
-label.psname.mnemonic=N
+label.jobname=\u5DE5\u4F5C\u540D\u7A31(&J):
+label.numcopies=\u5217\u5370\u4EFD\u6578(&O):
+label.priority=\u512A\u5148\u6B0A(&R):
+label.psname=\u540D\u7A31(&N):
 label.pstype=\u985E\u578B:
 label.rangeto=\u81F3
-label.size=\u5927\u5C0F(Z):
-label.size.mnemonic=Z
-label.source=\u4F86\u6E90(C):
-label.source.mnemonic=C
+label.size=\u5927\u5C0F(&Z):
+label.source=\u4F86\u6E90(&C):
 label.status=\u72C0\u614B:
-label.username=\u4F7F\u7528\u8005\u540D\u7A31(U):
-label.username.mnemonic=U
+label.username=\u4F7F\u7528\u8005\u540D\u7A31(&U):
 label.millimetres=(mm)
 label.inches=(in)
-label.topmargin=\u9802\u7AEF\u908A\u8DDD(T)
-label.topmargin.mnemonic=T
-label.bottommargin=\u5E95\u90E8\u908A\u8DDD(B)
-label.bottommargin.mnemonic=B
-label.leftmargin=\u5DE6\u908A\u8DDD(F)
-label.leftmargin.mnemonic=F
-label.rightmargin=\u53F3\u908A\u8DDD(R)
-label.rightmargin.mnemonic=R
+label.topmargin=\u9802\u7AEF\u908A\u8DDD(&T)
+label.bottommargin=\u5E95\u90E8\u908A\u8DDD(&B)
+label.leftmargin=\u5DE6\u908A\u8DDD(&F)
+label.rightmargin=\u53F3\u908A\u8DDD(&R)
 #
-radiobutton.color=\u984F\u8272(C)
-radiobutton.color.mnemonic=C
-radiobutton.draftq=\u8349\u7A3F(F)
-radiobutton.draftq.mnemonic=F
-radiobutton.duplex=\u96D9\u9762\u5217\u5370(D)
-radiobutton.duplex.mnemonic=D
-radiobutton.highq=\u9AD8(H)
-radiobutton.highq.mnemonic=H
-radiobutton.landscape=\u6A6B\u5411(L)
-radiobutton.landscape.mnemonic=L
-radiobutton.monochrome=\u55AE\u8272(M)
-radiobutton.monochrome.mnemonic=M
-radiobutton.normalq=\u6B63\u5E38(N)
-radiobutton.normalq.mnemonic=N
-radiobutton.oneside=\u55AE\u9762(O)
-radiobutton.oneside.mnemonic=O
-radiobutton.portrait=\u76F4\u5411(P)
-radiobutton.portrait.mnemonic=P
-radiobutton.rangeall=\u5168\u90E8(L)
-radiobutton.rangeall.mnemonic=L
-radiobutton.rangepages=\u9801\u9762(E)
-radiobutton.rangepages.mnemonic=E
-radiobutton.revlandscape=\u53CD\u5411\u6A6B\u5370(N)
-radiobutton.revlandscape.mnemonic=N
-radiobutton.revportrait=\u53CD\u5411\u76F4\u5370(I)
-radiobutton.revportrait.mnemonic=I
-radiobutton.tumble=\u7FFB\u8F49(T)
-radiobutton.tumble.mnemonic=T
+radiobutton.color=\u984F\u8272(&C)
+radiobutton.draftq=\u8349\u7A3F(&F)
+radiobutton.duplex=\u96D9\u9762\u5217\u5370(&D)
+radiobutton.highq=\u9AD8(&H)
+radiobutton.landscape=\u6A6B\u5411(&L)
+radiobutton.monochrome=\u55AE\u8272(&M)
+radiobutton.normalq=\u6B63\u5E38(&N)
+radiobutton.oneside=\u55AE\u9762(&O)
+radiobutton.portrait=\u76F4\u5411(&P)
+radiobutton.rangeall=\u5168\u90E8(&L)
+radiobutton.rangepages=\u9801\u9762(&E)
+radiobutton.revlandscape=\u53CD\u5411\u6A6B\u5370(&N)
+radiobutton.revportrait=\u53CD\u5411\u76F4\u5370(&I)
+radiobutton.tumble=\u7FFB\u8F49(&T)
 # The vkMnemonics correspond with the constants defined in KeyEvent, eg
 # 65 = KeyEvent.VK_A
-tab.appearance=\u5916\u89C0(A)
-tab.appearance.vkMnemonic=65
-tab.general=\u4E00\u822C(G)
-tab.general.vkMnemonic=71
-tab.pagesetup=\u9801\u9762\u8A2D\u5B9A(S)
-tab.pagesetup.vkMnemonic=83
+tab.appearance=\u5916\u89C0(&A)
+tab.general=\u4E00\u822C(&G)
+tab.pagesetup=\u9801\u9762\u8A2D\u5B9A(&S)
 #
 error.pagerange=\u7121\u6548\u7684\u9801\u9762\u7BC4\u570D; \u8ACB\u91CD\u65B0\u8F38\u5165\u6578\u503C (\u4F8B\u5982 1-3,5,7-10)
 error.destination=\u7121\u6548\u7684\u6A94\u540D; \u8ACB\u518D\u8A66\u4E00\u6B21