xgettext originally creates a PO file, unless told
otherwise, it initializes the
msgid field with the untranslated
string, and leaves the
msgstr string to be empty. Such entries,
having an empty translation, are said to be untranslated entries.
Later, when the programmer slightly modifies some string right in
the program, this change is later reflected in the PO file
by the appearance of a new untranslated entry for the modified string.
The usual commands moving from entry to entry consider untranslated entries on the same level as active entries. Untranslated entries are easily recognizable by the fact they end with ‘msgstr ""’.
The work of the translator might be (quite naively) seen as the process of seeking for an untranslated entry, editing a translation for it, and repeating these actions until no untranslated entries remain. Some commands are more specifically related to untranslated entry processing.
The commands u (
po-next-untranslated-entry) and U
po-previous-untransted-entry) move forwards or backwards,
chasing for an untranslated entry. If none is found, the search is
extended and wraps around in the PO file buffer.
An entry can be turned back into an untranslated entry by
merely emptying its translation, using the command k
po-kill-msgstr). See Modifying Translations.
Also, when time comes to quit working on a PO file buffer with the q command, the translator is asked for confirmation, if some untranslated string still exists.