I understand that the difference between the _ macro and the N_ macro is that the former is used to force a gettext call on the argument and the latter is used for strings for which gettext will be called later. But I don't see any documentation about why/when we should use the G_ macro instead of one of the other two. It seems to be used for diagnostic messages, for which gettext will be called in the diagnostic machinery; why use G_ instead of N_ in such cases?
Jason