translators ----------- see this page for a howto: http://developer.gnome.org/doc/tutorials/gnome-i18n/translator.html Things like msgid "/File/_Save Image As ..." are menu items. You only need to translate the last part (following the final "/"). The underscore character marks the accelerator (the underlined character in the menu item). So you could put: msgstr "Sevy i_mago os ..." and it would display as "Sevy imago os ...", with the "m" underlined. tips ---- cd vips-8.x find cplusplus/include libvips/include \ -name '*deprecated*' -prune -o \ -name '*.h' \ -printf '%h\0%d\0%p\n' | \ sort -t '\0' -n | \ awk -F '\0' '{print $3}' > po/POTFILES.in find libvips tools cplusplus \ -path libvips/deprecated -prune -o \ -name dummy.c -prune -o \ -path cplusplus/examples -prune -o \ \( -name '*.c' -o -name '*.cpp' \) \ -printf '%h\0%d\0%p\n' | \ sort -t '\0' -n | \ awk -F '\0' '{print $3}' >> po/POTFILES.in cd vips-8.x/po intltool-update --pot make a new vips8.x.pot translation template from the sources add header # test translation file # Copyright (C) 2019 # This file is distributed under the same license as the libvips package. # John Cupitt , 2019. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: vips 8.9.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-08-06 15:19+0100\n" "PO-Revision-Date: 2019-08-06 15:19+0100\n" "Last-Translator: john \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=s;\n" edits to make vips8.xx.pot into test.po msgfmt -cv -o /dev/null test.po check translation for errors