Responding to a variety of questions made over the years about this:
This is a constant intended to be displayed after localizing the constant. Its localized value will primarily be displayed to users whose preferred languages have a short word describing the relationship.
But it ALSO needs at least some comprehensible localization in EVERY language, because I can send you a vcard for myself labeling this specific type of cousin (because that’s how I think of her), and I don’t know in advance what languages you use.
The primary customer of this family of constants is a localizer, who by virtue of localizing Apple software needs to know English, but may not read or understand Chinese.
The constant embeds everything that an English-speaking localizer needs to explain the relationship in a different language. That’s why something like the proposal here[0] (just use the Chinese name for this relationship) would not be an improvement.
A fully generic DSL to describe relationships wouldn’t help localizers know which relationships are actually used in the real world.
> The constant embeds everything that an English-speaking localizer needs to explain the relationship in a different language. That’s why something like the [proposal] (just use the Chinese name for this relationship) would not be an improvement.
I don't exactly agree. Note that this constant embeds two terms, exactly because this particular kinship term does not distinguish them. In the other word this constant can only reasonably used in the Chinese kinship system, and others will be confused regardless of whether it's translated or not. The reasonable UI should group such labels into some dedicated section like "Extended families (Chinese system)" so that they don't need to be translated literally. Same for other kinship systems, of course.
You, and many people here keep assuming that this is a feature that is unique to Chinese language and/or kinship system.
It's the main one that English speakers are probably exposed to; but even in this thread there are mentions of other languages and cultures where this or similar relationships have specific terms and more generic ones like "cousin" simply don't exist.
Grouping them all under "Chinese system" is... let's say culturally insensitive.
_That_ is a reason enough to not use the term from any specific language as a constant name; let enough to not expose that in the UI to users.
> this constant embeds two terms, exactly because this particular kinship term does not distinguish them
This isn't the case, any more than the English word 'aunt' embeds four terms (your father's sister, your mother's sister, your father's brother's wife, your mother's brother's wife). Plenty of languages distinguish between all four of these relationships. But the English term refers to what we see as a single concept - an aunt.
Most family words have translation difficulties like this. The concepts are usually more generic, more specific, or in some cases incomparable when moving between cultures. This also applies to many other words - even ones for very prosaic objects. The French have a single word which means "metallic object which has a particular shape in order to be able to turn something matching that shape", and they use additional qualifications to distinguish between a door-opening-shaped-metallic-turner and a bolt-undoing-shaped-metallic-turner.
The localization system seeks to avoid 2 things: that when an English speaker adds 'Mary (relationship: Aunt)' as a contact, they have to be asked "Is Mary actually your fathers-sister-aunt or your mothers-sister-aunt?" (Because that person would find it strange and unncessary.) Secondly that where possible, someone who has access to this information in another locale, doesn't see a low-quality translation, in particular one which makes no sense ("US English Kinship Relation �� Mary"), or which is misleading ("Mary is John's father's brother's wife? But I'm married to John's father's only brother!"). The right way to do this is to record a reasonable representation of the intended meaning in the source locale, and to translate into the destination locale. Since English also happens to be the language used for the code, the value "LabelContactRelationAunt" looks less complicated than this one, but it really isn't.
This can be seen by how it will be translated. In a locale where the English concepts encompasses two words, it might be rendered as "(Father-Aunt) or (Mother-Aunt)". In a locale where there are 4, 8 or more relationships which could be described in English as an aunt, they might use something intentionally less specific like "OlderFemaleRelativeNotAGrandmother" rather than a laundry list of possibilities. In others yet it might make sense to use the literal English word, or a contextualization like "Western 'Aunt'", if that's the easiest way to explain the relationship.
Nothing about this is unique to either English or Chinese.
I think this UI issue shows a problem in thinking about what the actual problem is that they're trying to solve.
This bug is about contact cards, and so the relationship is necessarily between you and the contact. So, it's not like you need to translate 表妹 into English, or differentiate it from 表姐 in English, as it's something you have chosen to describe the relationship. If you just think of them as "cousin" or whatever you use in your language, that's fine, just use that label. But, once you've assigned e.g. 表妹 to a contact, you don't need to translate that to English if you change your locale... because you already know what it means, because you chose it in the first place!
Admittedly, there's an issue when you receive a contact from someone else, but then you will probably be changing that field anyway. Unless we are family, you sending me a contact for your aunt is unlikely to also be my aunt, and if it is, well I probably also share that native language with you. I'm sure there are edge cases, like siblings who were separated when very young and the parents moved to different countries, or adopted, or found via DNA testing or whatever. But even in those few contexts, learning about the word or having the person themselves explaining the relationship to you, probably helps overall understanding of the relationship.
In any case, a lot of the Chinese words for the various familial relationships are quite amorphous. I remember being very surprised when a Chinese friend posted some photos on Wechat of her 孙子, literally "son's son". My initial reaction was "She can't be old enough to have a grandson!" then "Wait? She has a son? I thought she was single..." Turns out, she was referring to her brother's son. Lots of people use 哥, 弟弟, 妹妹, 姐姐 (literally older brother, younger brother, younger sister, older sister) to mean their friendship group, although this is probably a result of the impact of the one child policy. 阿姨 and 叔叔 (aunt and uncle) are just respectful terms for people of similar age to your parents, etc. There's literally no point trying to translate these names into their literal English meaning, because it will just further confuse people.
So, then the big problem becomes where these labels come from. Is it a dropdown box where only the options available in your current language are presented? How do you then choose one that's available in a different language if that's what you want to use? Presumably these aren't translated too literally into other languages, as e.g. an English speaker isn't going to want to choose one of 4 options for "cousin", and hopefully would be immediately suspicious of why their phone wants that much information about the nature of their cousin-ness, when it's customary to just use a single word. How then would that get translated back into Chinese? It would be embarrassing at family events if someone saw that the male cousin on my mum's side was labelled as female cousin on my dad's side.
I think it'd be much easier if you could just type what you wanted into this relationship field, maybe with a drop-down or auto-complete for likely options in your language.
> The constant embeds everything that an English-speaking localizer needs to explain the relationship in a different language.
I disagree insofar as you really need the explanatory text in the documentation to be able to parse the constant’s name correctly, especially if you’re not already familiar with that specific relationship category. It would also be helpful for the documentation to point to the Chinese/Vietnamese/etc. terms to provide context. In that light, a shorter constant name would have been appropriate IMO, for developer ergonomics.
Even if you want to include “full” information, CNLabelContactRelationYoungerMaleCousinNotViaFathersBrother would have been shorter, if I understand the relationship correctly. (The fact that I’m not entirely sure here also indicates that more documentation is needed.)
are there multiple languages that have this exact relationship concept? because if it’s in a single language or family of languages, the idea that it can be translates into something generic seems questionable
I don't speak Armenian, but I dated an Armenian woman once, and she told me they have words for familial relationships that we didn't really have concepts for in English.
In the Tagalog (Filipino) language, we have the following words which are of Hokkien import:
* parent-in-law - biyenan
* son- or daughter-in-law - manugang
* brother-in-law - bayaw
* sister-in-law - hipag
* the spouse of your brother- or sister-in-law - bilas
We also have the following words for siblings which are influenced by Hokkien:
(male first, then female)
* elder sibling - kuya / ate (or aya / achi)
* second eldest - diko / ditse
* third eldest - sanso or sangko / sanse
* youngest sibling (male or female) - bunso (or siobe)
I've also heard my grandaunts call my grandfather "siaho" (the eldest sister's husband) but I don't know what's the equivalent word for the eldest brother's wife.
Prepared to be surprised, for large numbers of people all with different languages [1] these are very different relationships - the people your sister might marry are potentially an entirely different skin group to the brothers of whomever you might marry [2].
( This was once way more complicated in stricter days as both Matrilineal and Patrilineal moieties were intertwined across adjacent territorries - leading to a complex system of exogamous out rotation .. the wikipedia pages fail to fully capture a complete picture with all local variations [3] )
You're correct that most people in Western society see those relationships as similar - I have no idea if that remains true once you start including Indian, south east asian, and other people across the globe.
It's funny. A Tamil friend of mine from a specific group would not differentiate between her 1st cousins and her siblings. So her female cousin was her "sister" and her biological sister was also "sister". Likewise for brother.
She was surprised to learn that we don't recognize the similarity of those relationships.
I suspect the appearing naturalness of this is all down to whether or not you grew up with it.
"First cousin where at least one of the sibling parents is female" is easy enough to recognize too, I just wonder why you'd do it that way. Why group together "mother's brother", "mother's sister", and "father's sister", but keep it separate from "father's brother"?
And then specifying "younger" and the gender of the cousin is straightforward enough.
I don't perceive those relations as similar, although they are related - kinda mirror images of each other. One is the partner of family, the other is family of the partner. In the former case I expect to have the connecting person's (i.e. my sibling's) loyalty if push comes to shove, and in the latter case I expect the brother-in-law to have the connection's (i.e. my spouse's) loyalty.
If you squint hard enough - yes. I do not know if it is Sapir-Whorf, but if I grew up using completely different words for sisters of my spouse, brothers of my spouse, husband of my sister, and wife of my brother, they do not look that similar to me.
Of possible interest to HNers, kinship terminology of different cultures is a subject that has a very elegant taxonomy. It was a major line of inquiry in early modern sociology, which tried to link other attributes of how societies were structured to how they named relations.
https://en.wikipedia.org/wiki/Kinship_terminology
Something I find sad about this is that many people really don’t know how to think about themselves in that context; in this way we aren’t a someone to other people so much as a something.
I know this isn’t a firm rule, but there are many people in my life who I’m certain wouldn’t have a good grasp of how they fit into their family and community beyond fairly superficial platitudes.
Maybe this has been true in the past as well. I wouldn’t know.
People still do this in small US towns. Your last name defines who you are to the town heritage. If you have the wrong last name, then you don't matter.
As non-contrarian as it sounds, I'd argue that as someone who came from a small town, having to define yourself by your "tribe" last name is worse, because if it the "wrong" last name, there's nothing you can do about it. You can, within reason, change what you do for a living.
Interestingly, when we were hosting some Ukrainian refugees recently, "sister" or "brother" could refer to a literal sibling or a cousin. I was unaware of different kinship terminologies until today (thanks again, HN), but that kind of nomenclature is similar to the Hawaiian system.
> Although `​` is one HTML5 named entity for U+200B, the additional names `NegativeMediumSpace`, `NegativeThickSpace`, `NegativeThinSpace` and `NegativeVeryThinSpace` (which are names used in the Wolfram Language for negative-advance spaces, which it maps to the Private Use Area) are also defined by HTML5 as aliases for U+200B (e.g. `​`).
Following links, it looks like somebody went through a bunch of mathematics software looking for all the symbol names somebody might be used to, so they could be added to the official list of named entities.
That is interesting. In many English speaking cultures children will informally refear to their mother's parents and father's parents by different names even if formally they are both "grandmother", "grandfather" or "grandparent". I like that in China they formalised the names.
Scandinavian languages have the same. »Mormor« (lit. mum mum) means maternal grandmother, while »farmor« (lit. dad mum) means paternal grandmother. Unfortunately, it doesn't appear to continue beyond that (so no »mormormor«).
The list is blowing my mind. A word for your mom's sibling's daughter if she's older than you, and another one if she's younger? What a dense piece of data!
Wait, do different people use the cousin words differently or is this page flat-out wrong? And not just wrong, but wrong about the exact term under discussion.
This page says Táng vs. Biǎo is based on whether it's on your father's side or mother's side. But the whole point of the "or" in MothersSiblingsDaughterOrFathersSistersDaughter is that Táng is for the children of two male siblings, and Biǎo is for the children of any other gender pairing.
I had no idea people label their family relationships in their contacts, but only one of my parents had a sibling survive to adulthood, and I only have two cousins, so I guess it's just not something I've ever had to worry about tracking.
In India, even before we get to cousins, we have distinct terms for father/mother's siblings of same and opposite genders. Same gender elder/younger siblings of your parents have different pronouns that translate this way in Kannada (Language of Karnataka state):
senior-father - ದೊಡ್ಡಪ್ಪ (doddaappa) for elder brother of father,
senior-mother - ದೊಡ್ಡಮ್ಮ (doddammA) for elder sister of mother,
junior-father – ಚಿಕ್ಕಪ್ಪ (chikkappa) for younger brother of father,
junior-mother - ಚಿಕ್ಕಮ್ಮ (chikkammA) for younger sister of mother.
Their spouses get the same seniority title with appropriate gender.
Then, opposite gender siblings of your parents get pronouns that are more conceptually closer to uncle/aunt. But here, there's no seniority distinction.
As someone of asian descent, I find it interesting how so many of these comments have such a stereotypical software engineer's "why don't they just XYZ" statement and its pretty eye opening.
I know I'm guilty of this at times too, but this example is really funny to me, and I guess I'll try rein in my assumptions that people are irrational in the future.
This pattern is pretty common on HN. Shallow dismissal and or overconfident alternative solution coming from those without any domain expertise (but that's okay because knowing how to code magically makes your ideas worth entertaining apparently).
This is a constant intended to be displayed after localizing the constant. Its localized value will primarily be displayed to users whose preferred languages have a short word describing the relationship.
But it ALSO needs at least some comprehensible localization in EVERY language, because I can send you a vcard for myself labeling this specific type of cousin (because that’s how I think of her), and I don’t know in advance what languages you use.
The primary customer of this family of constants is a localizer, who by virtue of localizing Apple software needs to know English, but may not read or understand Chinese.
The constant embeds everything that an English-speaking localizer needs to explain the relationship in a different language. That’s why something like the proposal here[0] (just use the Chinese name for this relationship) would not be an improvement.
A fully generic DSL to describe relationships wouldn’t help localizers know which relationships are actually used in the real world.
[0] https://news.ycombinator.com/item?id=28716546
I don't exactly agree. Note that this constant embeds two terms, exactly because this particular kinship term does not distinguish them. In the other word this constant can only reasonably used in the Chinese kinship system, and others will be confused regardless of whether it's translated or not. The reasonable UI should group such labels into some dedicated section like "Extended families (Chinese system)" so that they don't need to be translated literally. Same for other kinship systems, of course.
It's the main one that English speakers are probably exposed to; but even in this thread there are mentions of other languages and cultures where this or similar relationships have specific terms and more generic ones like "cousin" simply don't exist.
Grouping them all under "Chinese system" is... let's say culturally insensitive.
_That_ is a reason enough to not use the term from any specific language as a constant name; let enough to not expose that in the UI to users.
That’s what databases are for after all. You can’t encode every possible version of a familial relationship as a constant.
This isn't the case, any more than the English word 'aunt' embeds four terms (your father's sister, your mother's sister, your father's brother's wife, your mother's brother's wife). Plenty of languages distinguish between all four of these relationships. But the English term refers to what we see as a single concept - an aunt.
Most family words have translation difficulties like this. The concepts are usually more generic, more specific, or in some cases incomparable when moving between cultures. This also applies to many other words - even ones for very prosaic objects. The French have a single word which means "metallic object which has a particular shape in order to be able to turn something matching that shape", and they use additional qualifications to distinguish between a door-opening-shaped-metallic-turner and a bolt-undoing-shaped-metallic-turner.
The localization system seeks to avoid 2 things: that when an English speaker adds 'Mary (relationship: Aunt)' as a contact, they have to be asked "Is Mary actually your fathers-sister-aunt or your mothers-sister-aunt?" (Because that person would find it strange and unncessary.) Secondly that where possible, someone who has access to this information in another locale, doesn't see a low-quality translation, in particular one which makes no sense ("US English Kinship Relation �� Mary"), or which is misleading ("Mary is John's father's brother's wife? But I'm married to John's father's only brother!"). The right way to do this is to record a reasonable representation of the intended meaning in the source locale, and to translate into the destination locale. Since English also happens to be the language used for the code, the value "LabelContactRelationAunt" looks less complicated than this one, but it really isn't.
This can be seen by how it will be translated. In a locale where the English concepts encompasses two words, it might be rendered as "(Father-Aunt) or (Mother-Aunt)". In a locale where there are 4, 8 or more relationships which could be described in English as an aunt, they might use something intentionally less specific like "OlderFemaleRelativeNotAGrandmother" rather than a laundry list of possibilities. In others yet it might make sense to use the literal English word, or a contextualization like "Western 'Aunt'", if that's the easiest way to explain the relationship.
Nothing about this is unique to either English or Chinese.
This bug is about contact cards, and so the relationship is necessarily between you and the contact. So, it's not like you need to translate 表妹 into English, or differentiate it from 表姐 in English, as it's something you have chosen to describe the relationship. If you just think of them as "cousin" or whatever you use in your language, that's fine, just use that label. But, once you've assigned e.g. 表妹 to a contact, you don't need to translate that to English if you change your locale... because you already know what it means, because you chose it in the first place!
Admittedly, there's an issue when you receive a contact from someone else, but then you will probably be changing that field anyway. Unless we are family, you sending me a contact for your aunt is unlikely to also be my aunt, and if it is, well I probably also share that native language with you. I'm sure there are edge cases, like siblings who were separated when very young and the parents moved to different countries, or adopted, or found via DNA testing or whatever. But even in those few contexts, learning about the word or having the person themselves explaining the relationship to you, probably helps overall understanding of the relationship.
In any case, a lot of the Chinese words for the various familial relationships are quite amorphous. I remember being very surprised when a Chinese friend posted some photos on Wechat of her 孙子, literally "son's son". My initial reaction was "She can't be old enough to have a grandson!" then "Wait? She has a son? I thought she was single..." Turns out, she was referring to her brother's son. Lots of people use 哥, 弟弟, 妹妹, 姐姐 (literally older brother, younger brother, younger sister, older sister) to mean their friendship group, although this is probably a result of the impact of the one child policy. 阿姨 and 叔叔 (aunt and uncle) are just respectful terms for people of similar age to your parents, etc. There's literally no point trying to translate these names into their literal English meaning, because it will just further confuse people.
So, then the big problem becomes where these labels come from. Is it a dropdown box where only the options available in your current language are presented? How do you then choose one that's available in a different language if that's what you want to use? Presumably these aren't translated too literally into other languages, as e.g. an English speaker isn't going to want to choose one of 4 options for "cousin", and hopefully would be immediately suspicious of why their phone wants that much information about the nature of their cousin-ness, when it's customary to just use a single word. How then would that get translated back into Chinese? It would be embarrassing at family events if someone saw that the male cousin on my mum's side was labelled as female cousin on my dad's side.
I think it'd be much easier if you could just type what you wanted into this relationship field, maybe with a drop-down or auto-complete for likely options in your language.
Then why not call it CNLabelContactRelationYoungerCousinParentsSiblingsDaughter ?
I disagree insofar as you really need the explanatory text in the documentation to be able to parse the constant’s name correctly, especially if you’re not already familiar with that specific relationship category. It would also be helpful for the documentation to point to the Chinese/Vietnamese/etc. terms to provide context. In that light, a shorter constant name would have been appropriate IMO, for developer ergonomics.
Even if you want to include “full” information, CNLabelContactRelationYoungerMaleCousinNotViaFathersBrother would have been shorter, if I understand the relationship correctly. (The fact that I’m not entirely sure here also indicates that more documentation is needed.)
* Mother's brother = mamoo
* Mother's sister = khala
* Father's older brother = Taaya
* Father's younger brother = Chacho
* Father's sister = Phupo
Each of these's spouse also has a corresponding word. For example, Father's sister's husband will be Phupa.
Then, their children are identified with a suffix.
Mother's brother's son = Mamoo zaad bhai
Mother's brother's daughter = Mamoo zaad behan
Etc.
* parent-in-law - biyenan * son- or daughter-in-law - manugang
* brother-in-law - bayaw * sister-in-law - hipag
* the spouse of your brother- or sister-in-law - bilas
We also have the following words for siblings which are influenced by Hokkien:
(male first, then female) * elder sibling - kuya / ate (or aya / achi) * second eldest - diko / ditse * third eldest - sanso or sangko / sanse * youngest sibling (male or female) - bunso (or siobe)
I've also heard my grandaunts call my grandfather "siaho" (the eldest sister's husband) but I don't know what's the equivalent word for the eldest brother's wife.
IIRC correctly, already the Mac UX guidelines in the 80s included non-Latin scripts, right-to-left etc.
Lesson: make no assumptions and be very thoughtful about what seems to be edge cases from your own cultural point of view.
Brother-in-law
It’s my sibling’s husband, OR my spouse’s brother.
In many non-English-speaking cultures, that juxtaposition appears bizarre.
Deleted Comment
( This was once way more complicated in stricter days as both Matrilineal and Patrilineal moieties were intertwined across adjacent territorries - leading to a complex system of exogamous out rotation .. the wikipedia pages fail to fully capture a complete picture with all local variations [3] )
[1] https://mgnsw.org.au/wp-content/uploads/2019/01/map_col_high...
[2] https://en.wikipedia.org/wiki/Australian_Aboriginal_kinship
[3] https://en.wikipedia.org/wiki/Noongar_kin_systems
You're correct that most people in Western society see those relationships as similar - I have no idea if that remains true once you start including Indian, south east asian, and other people across the globe.
She was surprised to learn that we don't recognize the similarity of those relationships.
I suspect the appearing naturalness of this is all down to whether or not you grew up with it.
And then specifying "younger" and the gender of the cousin is straightforward enough.
It only scratches the surface of how something very natural in one culture is bizarre or even abhorrent in another.
Promised wives? <F/M>GM? Snokhachestvo? Washing dishes with cow urine? Sure let's just throw some i18n and she'll be right.
In the distant past, when you met someone new, they asked who you are in relation to your tribe and family.
Now, they ask what you do for the economy as an economic unit.
It’s fun to rebel against the current culture by asking someone who they are instead of what they do.
I know this isn’t a firm rule, but there are many people in my life who I’m certain wouldn’t have a good grasp of how they fit into their family and community beyond fairly superficial platitudes.
Maybe this has been true in the past as well. I wouldn’t know.
As non-contrarian as it sounds, I'd argue that as someone who came from a small town, having to define yourself by your "tribe" last name is worse, because if it the "wrong" last name, there's nothing you can do about it. You can, within reason, change what you do for a living.
No, I think it's more fun to rebel against the older culture of inbred villages and oppressive tradition
Yes thanks, judge me by what I do, not because some and some other people I barely care about
CNLabelContactRelationYoungerCousinMothersSiblingsDaughterOrFathersSistersDaught - https://news.ycombinator.com/item?id=28712667 - Sept 2021 (132 comments)
CNLabelContactRelation​YoungerCousin​MothersSiblingsDaughter​OrFathersSistersDaughter - https://news.ycombinator.com/item?id=20341855 - July 2019 (176 comments)
Oh no. Am I going to have to figure out https://news.ycombinator.com/item?id=20341959 again? Tweaks to HN title escaping since 20341855 are showing up just a bit there...
I’m curious how that ended up the entity name for U+200B ZERO WIDTH SPACE.
> Although `​` is one HTML5 named entity for U+200B, the additional names `NegativeMediumSpace`, `NegativeThickSpace`, `NegativeThinSpace` and `NegativeVeryThinSpace` (which are names used in the Wolfram Language for negative-advance spaces, which it maps to the Private Use Area) are also defined by HTML5 as aliases for U+200B (e.g. `​`).
Following links, it looks like somebody went through a bunch of mathematics software looking for all the symbol names somebody might be used to, so they could be added to the official list of named entities.
¹: https://en.wikipedia.org/wiki/Unicode_character_property#Whi...
https://blog.tutorabcchinese.com/chinese-learning-tips/famil...
This page says Táng vs. Biǎo is based on whether it's on your father's side or mother's side. But the whole point of the "or" in MothersSiblingsDaughterOrFathersSistersDaughter is that Táng is for the children of two male siblings, and Biǎo is for the children of any other gender pairing.
It’s not father’s side or mother’s side.
Tang 堂 is fathers brothers children. Every other cousin is 表 biao.
Kinship systems are neat.
Deleted Comment
Also mad props for thinking of the exact same thing.
It did for me. Spaceballs was one of the movies that I watched over and over as a kid.
senior-father - ದೊಡ್ಡಪ್ಪ (doddaappa) for elder brother of father,
senior-mother - ದೊಡ್ಡಮ್ಮ (doddammA) for elder sister of mother,
junior-father – ಚಿಕ್ಕಪ್ಪ (chikkappa) for younger brother of father,
junior-mother - ಚಿಕ್ಕಮ್ಮ (chikkammA) for younger sister of mother.
Their spouses get the same seniority title with appropriate gender.
Then, opposite gender siblings of your parents get pronouns that are more conceptually closer to uncle/aunt. But here, there's no seniority distinction.
I know I'm guilty of this at times too, but this example is really funny to me, and I guess I'll try rein in my assumptions that people are irrational in the future.