В мануале
советуют использовать модуль
Locale::TextDomain, в котором уже сразу есть функция __ и ещё куча удобных штуковин, при этом нет ненужного ООП. В том же мануале - ключи для xgettext:-k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 -kN__ -k
Чтение мануалов просветляет...