The i18n header needs to be included last, since it defines
`_` which results in conflicts with other headers.
see #8361 and e.g.
boost/function_types/detail/class_transform.hpp:23:26:
error: ‘boost::mpl::placeholders::_’ has not been declared
using mpl::placeholders::_;