Good grief. I got it totally wrong.
(Actually) looking at your code, I would try to have function xlate return "xxx". I'd hope "xxx" will appear.
Because, your class will call xlate twice because the "set label" augmentation is added before end_construct_object is ever executed.
If this is also the wrong tree I will keep my silence forever (in this thread) :-)
-Sture