In that case if PO Edit basically handles everything for me, then it should be fine. I didn't play around with POEdit so not really sure what it's capable of.So, perhaps I'll start by explaining in a bit more detail how the gettext system actually works (and how my plugin mimics it).
- The generated POT file contains all strings that the plugin was able to identify as probably needing to be translated. The T in POT stands for "template", so it's a "PO template file".
- When you open the POT in PoEdit, it makes a copy of it and renames it to fr.po (or whatever language you choose).
- Every time you export the POT from the game, it overwrites the POT file, but that shouldn't be an issue, because the POT file doesn't contain any actual translations, only the source strings.
- If you have an outdated PO file and an up-to-date POT file, then in PoEdit you can basically merge the two together. If there are new strings (a new item was added, for example), then it will add that new string to the PO file. If a string was removed, it marks it "fuzzy" (which causes PoEdit to show it in red).
- If a string was changed, that's no different from deleting the old one and adding the new one. However, if it detects that a new string is similar to an old one, then it'll automatically substitute the old string's translation for the new string (still marking it "fuzzy"). So, if you just corrected a typo or made some small change, then it automatically detects it; and if you completely rewrote the description, it would need a completely new translation anyway, so not detecting the change probably isn't a major issue.
I believe fuzzy strings are supposed to be only for translator reference and not actually used by the program; my importer currently doesn't respect that however.
Does all of that help?
I think the best way to get a log of what changed that you can send to the translator would be to actually run a diff between the old and new POT files. (You could also diff the Language.json, but that contains both source and translated strings, so it might have a lot of spurious changes.) I'm not sure if such a log is really needed though, since the PO editor should have some way of prioritizing new or changed strings (ie, untranslated or fuzzy strings) for the translator.
Definitely would need to explain how the workflows would work for users though.