(gettext) Entry Positioning
Info Catalog
(gettext) Main PO Commands
(gettext) PO Mode
(gettext) Normalizing
8.3.3 Entry Positioning
-----------------------
The cursor in a PO file window is almost always part of an entry. The
only exceptions are the special case when the cursor is after the last
entry in the file, or when the PO file is empty. The entry where the
cursor is found to be is said to be the current entry. Many PO mode
commands operate on the current entry, so moving the cursor does more
than allowing the translator to browse the PO file, this also selects
on which entry commands operate.
Some PO mode commands alter the position of the cursor in a
specialized way. A few of those special purpose positioning are
described here, the others are described in following sections (for a
complete list try `C-h m'):
`.'
Redisplay the current entry (`po-current-entry').
`n'
Select the entry after the current one (`po-next-entry').
`p'
Select the entry before the current one (`po-previous-entry').
`<'
Select the first entry in the PO file (`po-first-entry').
`>'
Select the last entry in the PO file (`po-last-entry').
`m'
Record the location of the current entry for later use
(`po-push-location').
`r'
Return to a previously saved entry location (`po-pop-location').
`x'
Exchange the current entry location with the previously saved one
(`po-exchange-location').
Any Emacs command able to reposition the cursor may be used to
select the current entry in PO mode, including commands which move by
characters, lines, paragraphs, screens or pages, and search commands.
However, there is a kind of standard way to display the current entry
in PO mode, which usual Emacs commands moving the cursor do not
especially try to enforce. The command `.' (`po-current-entry') has
the sole purpose of redisplaying the current entry properly, after the
current entry has been changed by means external to PO mode, or the
Emacs screen otherwise altered.
It is yet to be decided if PO mode helps the translator, or otherwise
irritates her, by forcing a rigid window disposition while she is doing
her work. We originally had quite precise ideas about how windows
should behave, but on the other hand, anyone used to Emacs is often
happy to keep full control. Maybe a fixed window disposition might be
offered as a PO mode option that the translator might activate or
deactivate at will, so it could be offered on an experimental basis.
If nobody feels a real need for using it, or a compulsion for writing
it, we should drop this whole idea. The incentive for doing it should
come from translators rather than programmers, as opinions from an
experienced translator are surely more worth to me than opinions from
programmers _thinking_ about how _others_ should do translation.
The commands `n' (`po-next-entry') and `p' (`po-previous-entry')
move the cursor the entry following, or preceding, the current one. If
`n' is given while the cursor is on the last entry of the PO file, or
if `p' is given while the cursor is on the first entry, no move is done.
The commands `<' (`po-first-entry') and `>' (`po-last-entry') move
the cursor to the first entry, or last entry, of the PO file. When the
cursor is located past the last entry in a PO file, most PO mode
commands will return an error saying `After last entry'. Moreover, the
commands `<' and `>' have the special property of being able to work
even when the cursor is not into some PO file entry, and one may use
them for nicely correcting this situation. But even these commands
will fail on a truly empty PO file. There are development plans for
the PO mode for it to interactively fill an empty PO file from sources.
Marking.
The translator may decide, before working at the translation of a
particular entry, that she needs to browse the remainder of the PO
file, maybe for finding the terminology or phraseology used in related
entries. She can of course use the standard Emacs idioms for saving
the current cursor location in some register, and use that register for
getting back, or else, use the location ring.
PO mode offers another approach, by which cursor locations may be
saved onto a special stack. The command `m' (`po-push-location')
merely adds the location of current entry to the stack, pushing the
already saved locations under the new one. The command `r'
(`po-pop-location') consumes the top stack element and repositions the
cursor to the entry associated with that top element. This position is
then lost, for the next `r' will move the cursor to the previously
saved location, and so on until no locations remain on the stack.
If the translator wants the position to be kept on the location
stack, maybe for taking a look at the entry associated with the top
element, then go elsewhere with the intent of getting back later, she
ought to use `m' immediately after `r'.
The command `x' (`po-exchange-location') simultaneously repositions
the cursor to the entry associated with the top element of the stack of
saved locations, and replaces that top element with the location of the
current entry before the move. Consequently, repeating the `x' command
toggles alternatively between two entries. For achieving this, the
translator will position the cursor on the first entry, use `m', then
position to the second entry, and merely use `x' for making the switch.
Info Catalog
(gettext) Main PO Commands
(gettext) PO Mode
(gettext) Normalizing
automatically generated byinfo2html