DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(gettext.info.gz) Entry Positioning

Info Catalog (gettext.info.gz) Main PO Commands (gettext.info.gz) PO Mode (gettext.info.gz) 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.info.gz) Main PO Commands (gettext.info.gz) PO Mode (gettext.info.gz) Normalizing
automatically generated byinfo2html