In includes/locale.inc
, _locale_export_po_generate
outputs the following:_locale_export_string($string['source']);
as a value for msgid without testing the string is non-empty.
But there should be only one empty msgid in a po file: inside its header.msguniq
from gettext
will abort on a duplicate empty msgid and such a po file will be unusable until you manually remove the duplicated empty msgid.
Other than that, msgid should not contains "\r" escape-sequence (msg* utils will throw a warning on them).