Strings get added and removed from your project. xgettext.pl needs to see all of the strings across the whole project to make a complete list of unique strings, the vars passed in, and where the strings are used.
The purpose of the Locale::Maketext::Extract* modules within this distribution is to:
- read in an existing .po file (if one exists)
- parse all of the source code in whatever formats are supported and extract the original string, any arguments that are passed in, and the location of the string
- write out a new .po file, merging in the new data, and removing strings that have not been translated and are no longer used.
It retains any user generated comments and translations, but everything else is under the control of xgettext.pl, as per GNU's gettext utilities.
It is not intended as a general PO-file manipulator.