I have created an alternative mechanism for translating texts, labels in scripts which have already preliminary gettext preparation in the code. My function catches the gettext call and the 'trans' script is used to retrieve translations from google. The translations are saved so that subsequent searches will be local and very quick. The advantage is that no translations need be done manually, also the number of languages available is limited by the number available on google translate. And because the strings are saved locally they can be edited if need be. I call this system 'transtext'.
It could be more 'complimentary' to gettext, if you are willing and able to do the leg work! From what I have read gettext translation files are compiled and 'should be' saved "$TEXTDOMAIN"-"$LANG".mo (LANG=en_GB.UTF-8), that is not the case in FatDog anyway. Gimp is saved as gimp20.mo. The language code is 'filtered' by the directory structure. The application is supposed to call gettext with arguments $TEXTDOMAIN 'msgid'. 'msgid' is the untranslated string. IN my function the "$msgstr" is saved and called using md5sum hashes, so each string is a new file labelled with its own hash signature. This could feasibly be made into a po file still using the hash as 'msgid'. Using hashes has advantages in that if the same string is used in a script in several different places, or in several different scripts, it will always produce the same hash and so not have duplicates. One known problem with md5sum hashes is that it is possible to replicate a hash with different input strings, but I suspect that is rare. The function could easily work with sha256sum or sha512sum as well.
In the gimp20.po file it should have program line numbers followed by 'msgid "$string"', followed by 'msgstr "$translated_string"'. According to what I read, these strings are supposed to get translated either manually or, you would expect, programmatically. After a little effort I was able to translate programmatically a .po file 'msgid "$string"' , and save as a 'msgstr "$translated_string"' in a new .po file... which would then get compiled and saved as a .mo file, with special magic string and formats etc etc ..... I have found that the subsequent files for an app are bigger than those produced with my simpleton function. GNU gettext says retrieval is much faster because of C code. It's a great system, no doubt. But mine is far better ... for me! I have no desire to further 'compliment' gettext with my function ... too much archaic BS to deal with!!!