diff --git a/src/common/accelcmn.cpp b/src/common/accelcmn.cpp index f5bea8079a..132c7edb0c 100644 --- a/src/common/accelcmn.cpp +++ b/src/common/accelcmn.cpp @@ -232,12 +232,18 @@ wxAcceleratorEntry::ParseAccel(const wxString& text, int *flagsOut, int *keyOut) // it's just a letter keyCode = current[0U]; - // if the key is used with any modifiers, make it an uppercase one - // because Ctrl-A and Ctrl-a are the same; but keep it as is if it's - // used alone as 'a' and 'A' are different - if ( accelFlags != wxACCEL_NORMAL ) - keyCode = wxToupper(keyCode); - break; + // ...or maybe not. A translation may be single character too (e.g. + // Chinese), but if it's a Latin character, that's unlikely + if ( keyCode < 128 ) + { + // if the key is used with any modifiers, make it an uppercase one + // because Ctrl-A and Ctrl-a are the same; but keep it as is if it's + // used alone as 'a' and 'A' are different + if ( accelFlags != wxACCEL_NORMAL ) + keyCode = wxToupper(keyCode); + break; + } + wxFALLTHROUGH; default: keyCode = IsNumberedAccelKey(current, wxTRANSLATE("F"),