winformscomctl32taskdialog

TaskDialog change button language


I use the Vista TaskDialog Wrapper and Emulator for WindowsForms.

It works fine, but how can I change the language of the buttons?


Solution

  • I have reasons to think change language of common buttons is NOT possible. (Common buttons are treated in special way and also return special results, please see TASKDIALOGCONFIG structure. There is no option provided for language change.)

    So if you are speaking about change of language of common buttons Yes, No, OK, Cancel, Retry, Close, then text on their labels is taken from resources of active Windows UI language. This is the same case as with buttons of MsgBox() dialog which was there from beginning of Windows. (Buttons are Yes, No, OK, Cancel, Abort, Retry, Ignore, Help.) I believe wording on common buttons was not made changeable to keep degree of uniformity in all basic dialog boxes on the same machine.

    Your application is not alone with this issue and most users who already installed applications in different language simply accept this behavior and don't view it as a bug. You can always explain this is standard behavior for dialog boxes made using the template provided by Windows. You know very well that change of labels is not the only, but one of many constraints of TaskDialog.

    Workaround is to create custom buttons although along with this you are losing ability to create links. If you are writing large application, consider writing own foundation for this type of dialog boxes as many applications already implement, too.