Auto-translated
Both can be done with scripts. Without them, I don't think it's possible. At the same time, for the first case, there are two implementation options:
1) give experience to a regular random hero upon liberation
2) place several heroes in reserve, then display a random one, but this involves too much work.