As it turns out, late static binding wasn't introduced until 5.3

Reverts 0ffe9fa54bff356d74730f39af43104bf6d2e1c4
Proper translation functions