Ask HN: How to handle Asian-style “Family name first” when designing interfaces?
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
[+] [-] muzani|2 years ago|reply
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
> "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
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
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
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
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
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?
[+] [-] GoblinSlayer|2 years ago|reply
[+] [-] yreg|2 years ago|reply
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
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
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
[+] [-] toastal|2 years ago|reply
[+] [-] leokennis|2 years ago|reply
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
- 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
[+] [-] lawgimenez|2 years ago|reply
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
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.
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] generic92034|2 years ago|reply
[+] [-] bryanrasmussen|2 years ago|reply
[+] [-] Fire-Dragon-DoL|2 years ago|reply
To clarify the purpose of the two
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] worrycue|2 years ago|reply
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
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
[+] [-] danbruc|2 years ago|reply
[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
* 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
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 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
More people designing applications need to read it.
[+] [-] dontupvoteme|2 years ago|reply
>People have exactly one canonical full name.
What is on your passport then?
[+] [-] jzwinck|2 years ago|reply
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
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
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
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:
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
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
[+] [-] tommiegannert|2 years ago|reply
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.
[+] [-] _darkmatterdev_|2 years ago|reply
Good luck designing your system! Sorry I don't have any advice.
[+] [-] jasfi|2 years ago|reply
[+] [-] paulmooreparks|2 years ago|reply
[+] [-] buro9|2 years ago|reply
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.
[+] [-] lnxg33k1|2 years ago|reply
But:
https://github.com/kamranahmedse/design-patterns-for-humans#...
https://www.postgresql.org/docs/current/datatype-enum.html
I'd have multiple classes handling each one a use-case, and a enum on user's record in order to specify which class to use for each, so that you can compute it from the nationality, but you could also potentially give each user the chance to set it for themselves
[+] [-] kroltan|2 years ago|reply
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
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
[+] [-] efitz|2 years ago|reply
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
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