Focusing on the "how to ask" component of your question, my intuitive thought would be to ask for "personal name(s)" and "family name". I feel these definitions are sufficiently translatable between different naming conventions, but if you wanted to elaborate it's pretty easy to describe the distinction.
Personal names are the ones that tell a person apart from their siblings, family name is the part they inherit. The latter also accurately describes patronymics (where a parent's first name is modified as the child's last name, e.g the Russian "Ivanovich"). If you wanted to be even more all-encompassing you could even say "inherited" in place of family but that's probably a jarringly uncommon turn of phrase.
As for the ordering, having gathered the family and personal name you could simply ask the user which order they'd like them displayed. Keeping the concepts of personal/family vs first/last separate also avoids problems like if a Chinese user put their personal name last, and so it was stored as such in the database, and the database is subsequently queried with the wrong name (for example if the user was asked the question differently by a helpdesk worker, and this time gave the family name instead of the "last name"). It also avoids the common data entry mistake of a data entry worker entering a name wrong (if they were looking at a paper document in
last, first order but the interface was ordered