+#if wxUSE_INTL
+ // native message box always uses the current user locale but the program
+ // may be using a different one and in this case we need to manually
+ // translate the button labels to avoid mismatch between the language of
+ // the message box text and its buttons
+ wxLocale * const loc = wxGetLocale();
+ if ( loc && loc->GetLanguage() != wxLocale::GetSystemLanguage() )
+ {
+ if ( m_dialogStyle & wxYES_NO )
+ {
+ // use the strings with mnemonics here as the native message box
+ // does
+ SetYesNoLabels(_("&Yes"), _("&No"));
+ }
+
+ // we may or not have the Ok/Cancel buttons but either we do have them
+ // or we already made the labels custom because we called
+ // SetYesNoLabels() above so doing this does no harm -- and is
+ // necessary in wxYES_NO | wxCANCEL case
+ //
+ // note that we don't use mnemonics here for consistency with the
+ // native message box (which probably doesn't use them because
+ // Enter/Esc keys can be already used to dismiss the message box
+ // using keyboard)
+ SetOKCancelLabels(_("OK"), _("Cancel"));
+ }
+#endif // wxUSE_INTL
+