textprops package fixes this problem. Loading this file create bindings for Text and Entry bindtags which bring up tk_popup with common edit operations.
Even more, bindings check state of widget and system clipboard and disable some entries appropriately.
It also has function textprops::StdEditMenu which allows to fill previously created menu with standard edit commands and adds a -postcommand which control their state.
::textprops::StdEditMenu menu text-widgetwhere text widget is the name of text widget which should be controlled by the menu. Variable and command substitution can be used in the text-widget name. So it is possible to use single edit menu for multiple text windows if you figure out how to pick current one.
Package uses msgcat package to localize menu entries. Currently no .msg files provided and no mcload is called. Russian localization is built directly into package code (.i.e mcmset command).
Limitations