I don't know; the only other approach to this that I am aware of is in django (https://github.com/django/django/blob/master/django/utils/text.py#L227). I avoided just using that function for two reasons: 1) it doesn't separate the pair and list cases, which I think it really should; and 2) using that would still require including "and" as a translation string with similar explanatory comments. This way, we get what I think it slightly better functionality and more context for translators.