xgettext -d alpine -c --keyword=_ --keyword=N_ -o po/alpine.pot \
alpine/*.[ch] pith/*.[ch] pico/*.[ch] \
alpine/osdep/*.[ch] pith/osdep/*.[ch] pith/charconv/*.[ch] \
Usually a translator would do msginit or msgmerge, I think...
msginit -l ja_JP -i po/alpine.pot -o po/ja.po
(or maybe msgmerge if trying to preserve old translations)
msgmerge -o po/ja.po po/ja.po po/alpine.pot
Edit po/ja.po to add translations, then
Probably this would get saved in po/ja/LC_MESSAGES/ja.po, I suppose.
I was putting it here while testing. See the bindtextdomain call
msgfmt -c -v -o locale/ja/LC_MESSAGES/alpine.mo po/ja.po
NOTE: I had trouble getting ngettext to work correctly. Maybe I
didn't understand exactly how it was supposed to get set up.
It is also a GNU-only extension as far as I can tell. Another
problem with ngettext is that when ENABLE_NLS is not defined
the English text will not be correct. So let's not use ngettext