JDK-6712580 : [CCJK] asian locales: wrong mnemonic keys on button label in complete dialog
  • Type: Bug
  • Component: install
  • Sub-Component: install
  • Affected Version: 6u10
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: windows
  • CPU: x86
  • Submitted: 2008-06-10
  • Updated: 2014-03-20
  • Resolved: 2014-03-20
Related Reports
Relates :  
Description
In b26, ISString.idt is updated. [FINISHTEXT] is used to save value of "Close" or "Finish" depending on the situation in complete dialog. If kernel bundle is used, [FINISHTEXT] will use "Close", if normal bundle is used, [FINISHTEXT] will represent "Finish".

&[FINISHTEXT] is used in button lable of complete dialog. The entry is IDS__IsExitDialog_3 in installshiled. 

While, in asian locales, mnemonic keys can not be represented in this way. In CCJK, it's something like "Close(&C)", "Finish(&F)". 

Attached are the screen shots of wrong mnemonic keys in zh_CN. All the other asian locales should be the same.

To solve this problem, there must be two entries in Installshiled for the button label. One is for "Finish(&F)", the other is for "Close(&C)". 
Another way to solve the problem is: IDS__IsExitDialog_3 is used for button label. L10n removed & in the entry for asian locales. In this way, there will be no mnemonic key of the button, but it's not a stopper bug. This can be done first in 6u10, but it's only a temporary solution.

In later release, or builds, two entries in installshiled for the button label are still necessary.

Comments
EVALUATION From Jindra, There should not be any additional mnemonic assigned to the default button or the cancel/close button. Default button should be accessible via Enter or Return key, Cancel via Escape key. If you're interested in rules, check Chapter 6: Mnemonics at http://java.sun.com/products/jlf/ed2/book/ Similar rules also apply to Windows -- Windows Vista UE guidelines give us more details: OK - Enter Yes/No - "Y" and "N" Cancel - Esc Close - Esc Stop - Esc Apply - "A" Next - "N" Finish - Enter
12-06-2008

SUGGESTED FIX Currently the translation of "Close" and "Finish" are in ISString.idt. The translation of "Finish" is in FINISH_STRING, and the translation of "Close" is in CLOSE_STRING. The easy way to fix is that: IDS__IsExitDialog_6 is only for "Finish". In 1041, 1042, 1028, 2052, the value is "[FINISHTEXT](&F)". Create another entry, maybe named IDS__IsExitDialog_xx(depends on your decision), only for "Close". In 1041, 1042, 1028, 2052, the value is "[FINISHTEXT](&C)". In both entries, in all the other locales, the vaule is same as what in English, "&[FINISHTEXT]". In this way, there will be no more l10n translation required.
11-06-2008