misc: add gettext function