xopo - Man Page

turn libxo format strings into simplified form




The xopo utility simplifies libxo format strings into the form used for gettext lookups by the libxo library. Using xopo, users can turn .pot files generated by xgettext into data useful for libxo-enabled applications.

Since gettext uses the string as the key into the message catalog, libxo uses a simplified version of the format string that removes unimportant field formatting and modifiers, stopping minor formatting changes from impacting the expensive translation process. A developer change such as changing "/%06d" to "/%08d" should not force hand inspection of all .po files.

xopo inspects the input file, looking for lines that begin with "msgid" which carry format strings as the remainder of the input line. These strings are passed to libxo for simplification and the resulting strings are replaced into the output stream, allowing xopo to operated as a filter.

-f pofile | --po pofile

Use the given po file for input.


Display this help text

-o file | --output file

Write output content to the given file

-s text | --simplify text

Generate the simplified version of a single text string.

-W | --warn

Generate warnings while parsing the format strings


Display version information


  % xopo -f foo.pot -o foo.pot.new

See Also

libxo(3), xo_format(5)


The libxo library first appeared in FreeBSD 11.0.


libxo was written by Phil Shafer <phil@freebsd.org>.

Additional Documentation

FreeBSD uses libxo version 1.6.0. Complete documentation can be found on github:


libxo lives on github as:


The latest release of libxo is available at:



The libxo library was added in FreeBSD 11.0.


Phil Shafer


July 9, 2015