The PO subedit minor mode has a few peculiarities worth being described in fuller detail. It installs a few commands over the usual editing set of Emacs, which are described below.
The window's contents represents a translation for a given message,
or a translator comment. The translator may modify this window to
her heart's content. Once this is done, the command C-c C-c
po-subedit-exit) may be used to return the edited translation into
the PO file, replacing the original translation, even if it moved out of
sight or if buffers were switched.
If the translator becomes unsatisfied with her translation or comment,
to the extent she prefers keeping what was existent prior to the
<RET> or # command, she may use the command C-c C-k
po-subedit-abort) to merely get rid of edition, while preserving
the original translation or comment. Another way would be for her to exit
normally with C-c C-c, then type
U once for undoing the
whole effect of last edition.
The command C-c C-a (
allows for glancing through translations
already achieved in other languages, directly while editing the current
translation. This may be quite convenient when the translator is fluent
at many languages, but of course, only makes sense when such completed
auxiliary PO files are already available to her (see Auxiliary).
Functions found on
po-subedit-mode-hook, if any, are executed after
the string has been inserted in the edit buffer.
While editing her translation, the translator should pay attention to not
inserting unwanted <RET> (newline) characters at the end of
the translated string if those are not meant to be there, or to removing
such characters when they are required. Since these characters are not
visible in the editing buffer, they are easily introduced by mistake.
To help her, <RET> automatically puts the character
at the end of the string being edited, but this
< is not really
part of the string. On exiting the editing window with C-c C-c,
PO mode automatically removes such < and all whitespace added after
it. If the translator adds characters after the terminating
looses its delimiting property and integrally becomes part of the string.
If she removes the delimiting
<, then the edited string is taken
as is, with all trailing newlines, even if invisible. Also, if
the translated string ought to end itself with a genuine
< may not be removed; so the string should appear,
in the editing window, as ending with two
< in a row.
When a translation (or a comment) is being edited, the translator may move the cursor back into the PO file buffer and freely move to other entries, browsing at will. If, with an edition pending, the translator wanders in the PO file buffer, she may decide to start modifying another entry. Each entry being edited has its own subedit buffer. It is possible to simultaneously edit the translation and the comment of a single entry, or to edit entries in different PO files, all at once. Typing <RET> on a field already being edited merely resumes that particular edit. Yet, the translator should better be comfortable at handling many Emacs windows!
Pending subedits may be completed or aborted in any order, regardless of how or when they were started. When many subedits are pending and the translator asks for quitting the PO file (with the q command), subedits are automatically resumed one at a time, so she may decide for each of them.