top | item 37332126

Ask HN: How to handle Asian-style “Family name first” when designing interfaces?

270 points| evolve2k | 2 years ago | reply

Our app is designed to be used across the Asia Pacific.

We have members who follow western naming conventions as well as members following common asian naming conventions.

Turns out there can be alot of variation on what is the convention.

https://www.asiamediacentre.org.nz/features/a-guide-to-using...

How would you handle different naming conventions, so users see their name in the order they would like?

Family, Given

Given, Family

510 comments

order
[+] muzani|2 years ago|reply
Just have a single "name field" and maybe preferred name, which is not the same. The family/given name format doesn't make much sense here.

Indian name: Sathiavelllu Arunachalam, known as SA or Seth

SE Asian ethnic Chinese names: Harry Lee Kuan Yew, (English name) (Surname) (Given name). Hated the name Harry and got it removed, though many Chinese are referred to by an English name.

Indonesian name: Fatimah Azzahra (given name only)

Malaysian name: Sharifah Azizah binti Syed Ahmad Tarmizi, (honorific surname: Sharifah) (given name: Azizah) (patronym) (father's honorific surname: Syed) (father's given name: Ahmad Tarmizi)

[+] johneth|2 years ago|reply
The GOV.UK design system[1] agrees with you:

> "Use single or multiple fields depending on your user’s needs. Not everyone’s name fits the first-name, last-name format. Using multiple name fields mean there’s more risk that a person’s name will not fit the format you’ve chosen and that it is entered incorrectly."

and

> "Avoid asking users for their title. It’s extra work for them and you’re asking them to potentially reveal their gender and marital status, which they may not want to do."

and

> "If your service stores personal information, you should allow users to update their details, including their name. Allowing users to change their name helps your service respect their personal identity. It also means they can continue using your service without having to start over. People change their name for many reasons. For example, because of a change in marital status, family situation or gender. Avoid making it hard for users to change their name. As well as causing them distress, it may make them reluctant to use your service."

[1] https://design-system.service.gov.uk/patterns/names/

[+] weinzierl|2 years ago|reply
"Just have a single "name field" and maybe preferred name, which is not the same."

This is the way to go.

"The family/given name format doesn't make much sense here."

It doesn't make much sense in many places all over the world. In Germany technically speaking our given names are a set and we can have many of them. While it is practically necessary to write them out in a certain order in our documents, from a legal standpoint they are all equal. There is no first and second given name and most certainly no middle name. Consequence is that in everyday life today I can be Hans and tomorrow Fritz. I can be Hans Fritz or Fritz Hans too, but not Hans-Fritz (with a hyphen) except if it's written like that in my birth certificate and then the order is fixed and I can't decide to be Hans, Fritz or Fritz-Hans.

The trade-off in this system is that it is much harder to change your name here then in most other places.

In Bavaria where I live, the informal convention is also last name first, exactly like in Asia.

[+] delta_p_delta_x|2 years ago|reply
For the record, traditional Indian names are far more complicated.

Consider the name of a famous violinist, Lalgudi Gopala Jayaraman Radhakrishnan, also known as Lalgudi G. J. R. Krishnan. From a Western perspective, 'Lalgudi' isn't strictly a 'name' per se: it is a toponymic surname, and is the name of a taluk (or administrative subdivision: it is a third-order division after state, and district) in Tamil Nadu.

Gopala is an avonymic, i.e. his grandfather's name, and Jayaraman is a patronymic, his father's name. His given name is Radhakrishnan, but frequently rendered as Krishnan.

[+] throwaway2037|2 years ago|reply
Many Indonesian Javanese people only have a single name. It is more rare these days, but certainly not zero, or only old people who don't use computer. I've met people in their 20s with a single name.

Also, in (South) Korea, depending upon the person's preference, they may choose to do family name first or last. It's crazy. I don't know why. (Can someone explain it to me?) As a result, most will write their romanized family name in all uppercase. Then, it can easily be identified as first or last. The easiest place to see it is in movie credits. When the screen is full of romanized Korean names, you see a mix of family name in all upper as first or last.

South Indian names can be incredibly long. Many people will shorten to use a single character from either first or last name.

Just have a single free text field. That should work for all cultures. Allow for 64 chars minimum (hello Spaniards!) and possibly 128 chars. Also, you might try a second field for "nick name". Lots of people with very long names use a shorter form in less formal settings.

[+] nicbou|2 years ago|reply
This is what I usually do if I need the name at all, but sometimes you need to interface with systems that need that data split.

A simple, unimportant one: how do you politely address the person? In Germany, you'd start a letter with "Sehr geehrte Frau Dr. Musterfrau", which implies knowing the last name, gender and title of the person. You can drop the title, but dropping the gender makes the whole thing impersonal. Using the full name feels off.

In my case, it was to address a resignation notice, so it was a bit of a nitpick with no legal consequences. However in other cultures and scenarios it can matter a lot more.

[+] fy20|2 years ago|reply
In most cases you don't even need the users real name.

If I sign up for an account, but the invoice is going to the billing department of my company, why do you care what my real name is?

[+] yreg|2 years ago|reply
Slack does this and I don't like it. I have Hungarian colleagues and some (but not all!) of them have entered the family name first.

I always feel awkward responding to them, because I don't know if I'm typing `Hello $FIRSTNAME` or `Hello $LASTNAME`.

[+] david-gpu|2 years ago|reply
Like many folks in Latin America, I have two given names and two surnames (no hyphen). I run into IT systems that choke at my two surnames every now and then and it's a pain.

Introducing a hyphen isn't great: it doesn't match my legal name and it's awkward because some people do have a hyphenated surname plus another surname.

I've also met several people whose legal name doesn't include a surname.

[+] WesolyKubeczek|2 years ago|reply
The difficult bit is how you sort them.

I have this problem that some software which doesn't readily discern what should be first name and what should be last name gives me a list of all Johns followed by all Lisas and then Peters, which is less than helpful. Other software thinks it got it right but then for Hungarian names, it gives me all Istváns followed by all Józsefs, which, again, is less than optimal.

Having a "sort key for bloody sorting" field may be a way to go, I personally would use it, but making it user friendly is a bitch, and heuristics will get it wrong more often than not. Sorry but I've run out of nice words for this problem.

(A bibliographer enters the chat, I cower in fear)

[+] YesJustWolf|2 years ago|reply
And don't forget people with just a single name. Filling in computer forms that require two names is the bane of my existence.
[+] toastal|2 years ago|reply
We should emphasize the “preferred name” option because it can be very expensive & arduous to change a legal name. Also using real names in UI/messages should be considered a bad practice because you risk leaking info to shoulder snoopers or dead-naming folks that don’t want to expend the time/effort/money for a legal rename. Just don’t.
[+] leokennis|2 years ago|reply
I feel like this is the way. If you want, include fields for all types of names (given, honorific, father's surname, whatever is imaginable) but also add the field "how should we address you" and use that for messages.

So:

* honorific surname: Sharifah * given name: Azizah * father's honorific surname: Syed * father's given name: Ahmad Tarmizi * address me as: Zaphod Beeblebrox the 4th

[+] eloisant|2 years ago|reply
Yes, basically:

- one "full name" field. (English speakers would use Firstname Lastname) - one "how should we call you?" name. (English speakers would use their first name, in some other cultures people would preferred to be called by their last name)

[+] lemper|2 years ago|reply
this. and if they don't use latin alphabet,"local name" addition would really be nice. that's what my paycheck giver does.
[+] lawgimenez|2 years ago|reply
Middle names are also equally important in the Philippines. The website that the OP included is lacking.

Either in the format:

- given-name middle-name surname

- surname, given-name (note there is no comma here) middle-name or middle initial

[+] ChrisMarshallNY|2 years ago|reply
That's what we do, in our app.

People can write whatever they want, there, in whatever order they want. We only allow 255 characters, though, because we use classic VARCHAR, and index the field.

Some Spanish (as in Catalan) names can be downright legendary.

I support non-Roman character sets.

[+] bryanrasmussen|2 years ago|reply
right - if you have a first name, last name and then switch on the locale you will have welcome text like Congratulations Rasmussen when I'm using a website while in Japan.
[+] Fire-Dragon-DoL|2 years ago|reply
Would it be better to have "full legal name" and "preferred name"?

To clarify the purpose of the two

[+] worrycue|2 years ago|reply
> SE Asian ethnic Chinese names: Harry Lee Kuan Yew, (English name) (Surname) (Given name). Hated the name Harry and got it removed, though many Chinese are referred to by an English name.

Really? Your parents named you the exact same name as a famous politician?

Edit: Really? Downvote me for the OP’s bad English?

[+] wmeddie|2 years ago|reply
Definitely read https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-... if you haven't yet.

Then think about what are the requirements your system needs when it comes to names.

Does the app need to know what a user's name is at all or is a username enough? Does it need to distinguish the family part of their name for anything?

A thing I think is the most general is to just have a Full Name field (min length 1 and either John Doe or something cute as default) And a Nickname or Display Name field if your app needs to show something on screen.

[+] vintermann|2 years ago|reply
It's not just programmers. Plenty of genealogists, do things like automatically give a wife their husband's (male!) patronym. Even though they see it doesn't work that way in the sources, they seem to feel that it "should" work that way.
[+] danbruc|2 years ago|reply
This list would have been so much better with examples or a short explanation how or why the assumptions break in case it is not obvious. The author offers examples on demand [1] but while I would be interested to know them, it seems not important enough to bother the author. Maybe the author sees this comment and has some time to spare, then it could benefit everyone and not just one person asking.

[1] If you need examples of real names which disprove any of the above commonly held misconceptions, I will happily introduce you to several.

[+] o11c|2 years ago|reply
There are 4 main name forms that I often see:

* Full name (John Smith)

* Index name (Smith, John) - mostly for meatspace compatibility.

* Preferred name (John Smith) - used in lists with other people's names

* Personal name (John) - used in direct communications

[+] croes|2 years ago|reply
Is there an article showing a solution because listing problems is the easy part?

And maybe it's just me but

>because names are central to our identities, virtually by definition.

isn't true, my name is for the outside world, inside I'm just I, that's my identity.

[+] nottheengineer|2 years ago|reply
> That Klingon Empire thing was a joke, right?

That made me laugh out loud. It's a great reminder why being conscious of the assumptions you make is an important part of development and one that LLMs can't really do.

[+] neoCrimeLabs|2 years ago|reply
Thank you for reminding me of this article!

More people designing applications need to read it.

[+] dontupvoteme|2 years ago|reply
Very interesting however

>People have exactly one canonical full name.

What is on your passport then?

[+] jzwinck|2 years ago|reply
I lived in Asia for many years and worked with people from many places there.

It's common to hear "How should I address you?" This is equivalent to the people here suggesting a "nickname" field (good idea).

There are people with only one name. Don't make them double it (Ananda Ananda).

There are people with several given names. But they may only want to be called by the first, or the first two, or the last.

There are people who wish to be called by their full name. They may find it jarring to be addressed by just one piece of their name.

Finally there are people who go by a name which is not part of their legal name at all. Short forms like Bob instead of Robert, but also freeform names for various reasons, perhaps the most sensitive being that some government official may have determined their legal name contrary to their own wishes. Imagine your mother named you Sue but someone decided that must be short for Susan and put that on your government documents.

Related: when people want to show which part of their name is the family name, they either make it all uppercase or underline it. You can see this on some CVs but it happens elsewhere too when a full name is going to be read by people who don't know the addressee.

[+] wtmt|2 years ago|reply
Does your “Asia Pacific” presence include countries like India? As others have pointed out, it’s better to read that article “Falsehoods programmers believe about names” [1] and then figure out how you’d like to deal with it. Looking at “Family, Given” or “Given, Family” is shortsighted and may cover only a few east Asian countries.

In India there are patronymic names with initials, mononyms (no “family name” or initials), names with just a given name (one or multiple words) and no “family name”, names where the “last name” is a place, etc.

If you truly want to cater to all kinds, just have one field for name and another for what they’d like to be addressed as.

[1]: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...

[+] saltymimir|2 years ago|reply
Ohh boy, as someone who works on a travel booking, service serving customers in Asia, this problem hits hard. I guess the answer depends on how you plan to handle the names once they got submitted.

I happen to be handing that data over to airlines, which has some of the less forgiving, yet fragmented name requirements. If you handle this incorrectly, your customer can't fly, even after they paid for the flight. And for those who say that this doesn't matter as much: It absolutely does. People do get confused by this more frequently than you think. I've seen people losing an entire trip that they saved for, all because of unclear naming requirements.

The way I deal with this is to provide a country and locale specific name fields. You don't have to detect the geolocation or track the user for this, just let them choose whatever locale setting they want, and give them the "sensible" layout. Here are some examples:

- In Vietnam, we use last name then first name.

- In Indonesia, we use first name, then last name, but also give an option to declare that the person doesn't have a last name.

- In Singapore, we use a single field to input the first name and last name.

Even when you've handled the layout convention carefully, the 3rd party you're handing the data to, if one exists, might not give the same care and attention that you do. In my case: some airlines just haven't gotten around the idea that some people simply don't have last names. When a person with a single name wants to fly, airlines want the customer to use the name for both first and last name (e.g. If the person's name is David, then the airline expects "David David"). If you require First Name and Last Name as the input, and don't elaborate on how to fill them, the customer might simply fill the last name with a dot (".") character. The airlines / any other 3rd party won't accept that. For this, I suggest to detail out the ways in which you handle the data and go talk to your providers, if any.

All in all, it's a pretty tough challenge, and the wisdom around this isn't going to fit inside a single HN post. I do commend you for actually thinking about this problem. Good Luck.

[+] jll29|2 years ago|reply
This is not just an Asian thing, Hungarians put their family name first (another reason not to call it a "last name").

Not to forget the special case that people may only have one name (for which some immigration offices had to invent the rule to repeat the single name twice, as first and last name, to comply with online and offline forms that have these often mandatory fields). So we may add two patterns to your pattern list:

  Only, Only
  Only
Localization is tricky, not just for names, e.g. postcodes (GB) and zip codes (US) come after the city ("London SW4 0AF", "Beverly Hill, CA 90210"), in many other places before (e.g. FR, DE, e.g. "91054 Erlangen").
[+] gandalfgreybeer|2 years ago|reply
Personal opinion.

As an Asian person, don’t overthink this.

Just have fields for family name and given name to distinguish between the two.

Sure, when there’s a text field saying hello “first name last name” it might be flipped but this shouldn’t be a deal breaker or offensive in any capacity.

Worst case is you can have a toggle they can click but from a developer standpoint, that might be over engineering for something that might cause headaches later.

[+] joegibbs|2 years ago|reply
Could you just have a single field for name and allow anything in that field? The only downside is you can't do something like "Hi ${FIRST_NAME}" in your emails, but the upside is that it basically handles any name or name order, e.g. Indonesian single names, Spanish names with the mother's surname included, etc.
[+] tommiegannert|2 years ago|reply
Related: as a Swede, the first times I had to fill out a honorific, it felt very weird. And many times they are required. We don't use honorifics in Sweden. The only difference between formal and informal address, is pretty much whether you use a nickname or not. The idea that there is a single category of "western name" is wonky.

Another is that my spoken/given name is after my "middle" name. Especially American forms don't deal well with that. In Sweden, you usually underline the given name, since it's used to address the person. Now I see a comment here saying that's a thing in the Philippines. That's interesting.

[+] jasfi|2 years ago|reply
You have two fields: full name and the name you want to be addressed by (e.g. in an email). This should cover the requirements of 99% of apps. You can add another field if really needed.
[+] paulmooreparks|2 years ago|reply
Even in England, you would have to consider King Charles III's name. His given names are Charles Philip Arthur George. No family name. Of course, now his name is even a bit longer: "Charles the Third, by the Grace of God of the United Kingdom of Great Britain and Northern Ireland and of His other Realms and Territories, King, Head of the Commonwealth, Defender of the Faith". So, if you think he might sign up for your app, make sure your name field is long enough, and that the "Preferred Name" field can accommodate a space: "Charles III" or "Charles Rex"
[+] buro9|2 years ago|reply
What do you need their name for?

Do you need their legal name? As in, actually legally need it?

Realise that you'll probably need several name fields in different places depending on what you're doing, i.e. an e-commerce app may have a name to address someone by, a name on a billing address, a name on a shipping address, a name on a payment method... all of which can vary for the same person.

If all you need is a way to address them, just a single name field.

[+] kroltan|2 years ago|reply
Don't even need to go as far as Asia, even european-descended cultures have different naming conventions.

Here in Brazil, it is very common to have "compound names" which are just... two given names you have to use together, for example "Ana Maria", AND it is also common to have "middle names" which are neither family names, nor given. My name, for example, is Leonardo Giovanni Scur, but "Leonardo" is my given name that I respond and expect people to call me by, and "Scur" is the family name. "Giovanni" only exists in documents, basically.

So, the first question is, what are you using their names for? If you are a paid service that identifies users to other users by name, ask for a "billing name" for your legal/policy needs, and a "display name" for identification, don't attribute any structure to it. If you don't need a legally identifying name, just ask for the "display name", and let people name themselves "Sir Bearington of Nunya Biznis".

[+] alkonaut|2 years ago|reply
So first of all everyone has read "falsehoods programmers believe about names". And of course everyone knows we should just use "name" and that's it. Perhaps a greeting/displayname if we need to do "Hello $customer" in an email.

But still. There are often hard requirements that are impossible to reconcile with the "just store one name" idea. As an example: you need to produce alphabetically sorted lists. It would rarely be acceptable to produce lists of people sorted by their given names in Western Europe for example. So as an example if you really do need to have BOTH "Doe, John" and "John Doe" what do you do in case you know at least 99% of users will have names following this format? Do you force people to enter their name twice? In that situation I would:

- Store it as a single name column, with more columns as required (greeting, sortable, ).

- Present a UX that is appropriate for the region of 99% users. So for western Europe show a "first name", "last name", but don't store that: just set the name column to "$firstname $lastname" and the index name column to "$lastname, $firstname" and greeting to "$firstname" for example. That way I at least let 99% of your users only input the name once.

- But (and this is important) offer an alternative way of specifying it for those who don't have a name that conforms to the format. You let just that small fraction of users enter a name/indexname/greeting instead.

And yes: the above ONLY applies if it's really a hard requirement to separate them, because the last name sorting was really a requirement. Of course there are other requirements that force other solutions. The "just one input" is the correct solution for all the cases where it is possible.

[+] chomp|2 years ago|reply
Use a single text field for the full name.
[+] efitz|2 years ago|reply
Is there any reason why you need to specifically know the first and last name, or the family and given name? I think there is a lot of inertia in the idea that you must have two name fields, but why?

Why not just have one name field, and let people type what they want in it?

Or better yet, have one field for “what should I print as the name when I send you a package or letter”, and “what would you like me to call you?” (e.g. preferred name)

[+] grardb|2 years ago|reply
Shameless plug: I gave a talk on names and the problems that arise when you give them special treatment - https://youtu.be/NfKhY3sAQ9E

But the tl;dw is to do this: <input type="text" name="name" />

I don't know what kind of app you're building, but unless it's 100% impossible (from a business perspective) not to separate people's names into multiple fields, you really should just make it one field.

If it's a true requirement for the business—due to a third-party vendor's requirements, for example—then I suppose you could simply ask the user which order they prefer and display their name accordingly.

[+] ggm|2 years ago|reply
Indonesia: Single name is common. Therefore only one field filled in should be legal.