POE(1) General Commands Manual POE(1)
NAME
poe - .po file editor
SYNOPSIS
poe [-h | --help]
poe [-V | --full-version]
poe [-v | --version]
poe [filename.po]
COPYRIGHT
poe Copyright © 2021-2023 Strahinya Radich.
This program is licensed under GNU GPL v3 or later. See the file LI-
CENSE in the poe repository for details. File termbox.h is based on
termbox2 TUI library, (c) 2021 termbox developers, which is released
under the terms of Expat license, see the file LICENSE.termbox.
DESCRIPTION
poe is a .po (GNU gettext) file editor with a terminal UI.
KEY BINDINGS
Main window key bindings are as follows:
+--------------------------------------------------------+
|Key Action |
+--------------------------------------------------------+
|Esc Close dialog or clear error |
|Enter Edit entry |
|H or F1 Show help dialog |
|/ or F7 Incremental search (end input with Enter) |
|n or F3 Find next |
|N or F4 Find previous |
|u or F8 Go to next untranslated entry |
|f or F9 Go to next fuzzy entry |
|w or C-S Save file (with backup) |
|g or Home Go to first entry |
|C-B or PgUp Go to previous page |
|k or Go to previous entry |
|j or Go to next entry |
|C-F or PgDn Go to next page |
|G or End Go to last entry |
|z or C-Z Toggle fuzzy flag |
|q or C-Q Quit |
+--------------------------------------------------------+
Edit dialog key bindings are as follows:
+---------------------------------------------------------------------+
|Key Action |
+---------------------------------------------------------------------+
|C-S Update entry and close dialog |
|C-B or PgUp Update entry and edit previous entry |
|C-F or PgDn Update entry and edit next entry |
|C-P Show previous plural form of msgstr |
|C-N Show next plural form of msgstr |
|Escape Cancel changes and close dialog |
|C-C Yank (copy) current msgstr to paste buffer |
|C-V Paste the contents of paste buffer into current msgstr |
|F8 Go to next untranslated entry |
|F9 Go to next fuzzy entry |
|F5 Copy msgid to edit box as current msgstr |
|F6 Toggle focus between info box and edit box |
|C-Z Toggle fuzzy flag |
|C-A or Home Go to start of line |
|C-E or End Go to end of line |
|C-U Erase to start of line |
|C-K Erase to end of line |
|C-R Go to previous word |
|C-T Go to next word |
|C-W Erase previous word |
| Go to previous line |
|<- Go to previous character |
|-> Go to next character |
| Go to next line |
+---------------------------------------------------------------------+
In the table above, "current msgstr" refers to the situation when there
are multiple msgstrs, representing different plural forms. Only the
currently shown plural form is affected.
When the info box is focused, arrow keys, C-B/C-F (PgUp/PgDn) and C-
A/C-E (Home/End) keys scroll the info box.
When the search box is open, relevant text editing and movement com-
mands from the edit box also apply. For example, C-R moves one word
backwards, and C-W deletes one word backwards.
STATUS LINE
Status line is comprised of a number of segments, by default three. The
central segment displays the current message number, the total messages
count, then in parentheses: number of untranslated messages, number of
fuzzy messages and the number of obsolete messages. Obsolete messages
are messages whose msgid doesn't match any msgid in the message catalog
anymore, and are commented out in the .po file using #~ comments.
MESSAGE FLAGS
Message flags are shown to the left of the msgid in the main window and
the statusbar of the edit box. They mean the following:
+-------------------------------------+
|Character Meaning |
+-------------------------------------+
|C c-format flag |
|F fuzzy flag |
|P Message has plural forms |
|N no-c-format flag |
+-------------------------------------+
ERROR CHECKING
poe has some rudimentary checks of the translated messages built in.
First, when saving changes in the edit box, if the msgid has a newline
character (\n), a dot (.) or a space ( ) at the end, and the corre-
sponding msgstr doesn't, msgstr being saved will have its ending char-
acter made to match the one from the msgid. This feature can be dis-
abled by commenting out the MATCH_MSGSTR_ENDING feature flag.
Second, if the numbers of newline characters (\n), or, additionally,
dots when WARN_COUNT_DOTS is set, in msgid and msgstr don't match, ms-
gstr will be shown in a different color on the main screen. If the num-
ber of newlines was intended, you can simply ignore this warning. Oth-
erwise, it can be useful to detect unwanted discrepancies in formatting
between the original message and the translation.
AUTHOR
Strahinya Radich, <https://strahinja.org>
KNOWN LIMITATIONS
• UTF-8 character set is assumed.
• CJK characters are unsupported/problematic. This is a limitation of
termbox library. See
<https://github.com/nsf/termbox>
for more details.
• Only one file can be edited at a time, and no additional files can
be loaded at runtime. This is a design decision.
• Unless the define CREATE_BACKUPS is commented out before compila-
tion, the directory of the edited file must be writable by the user
in order to write the changes to the file. This is due to creating
backups in order to avoid the potential data loss under specific
circumstances (loss of power during write).
• Only the flags fuzzy, c-format and no-c-format are supported.
Other flags will be stripped on save. This is a design decision.
BUGS
Bugs can be reported using the ticket tracker at: <https://todo.sr.ht/
~strahinja/poe>
poe 1.7.1 November 10, 2023 POE(1)