NAME
poe
—
.po file editor
SYNOPSIS
poe |
-h | --help |
-V | --full-version |
-v | --version |
poe |
filename.po |
DESCRIPTION
poe
is a .po (GNU gettext) file editor
with a terminal UI.
-h
,--help
- Show option summary.
-V
,--full-version
- Show full version information: like
-v
, followed by copyright notice and defines set in config.h. -v
,--version
- Show version information: program version and source git repository commit date.
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 Up | Go to previous entry |
j or Down | 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 |
Up | Go to previous line |
Left | Go to previous character |
Right | Go to next character |
Down | 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 commands 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 corresponding msgstr doesn't, msgstr being saved will have
its ending character made to match the one from the msgid. This feature can
be disabled 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, msgstr will be shown in a different color on the main screen. If the
number of newlines was intended, you can simply ignore this warning.
Otherwise, it can be useful to detect unwanted discrepancies in formatting
between the original message and the translation.
EXIT STATUS
The poe
utility exits 0 on success,
and >0 if an error occurs.
AUTHORS
Strahinya Radich <contact@strahinja.org>, 2021-2024
BUGS
Bugs can be reported using the ticket tracker at: https://todo.sr.ht/~strahinja/poe
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 compilation, 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
andno-c-format
are supported. Other flags will be stripped on save. This is a design decision.