S2.05.3Functional person-name fields设计
中间名、父名与后缀的处理
别名: given2 · patronymic · generation suffix
概念解释
功能性姓名字段(functional person-name fields)按一个成分在显示与省略中的作用建模,而不是把 given 与 surname 之间的所有内容都叫“中间名”,或把姓名末尾的所有内容都塞进“后缀”。父名、附加 given name、第二 surname、代际标记、学位资历和敬称承担不同功能;错误归类会使简称、排序、称呼和证件输出丢字或错位。
机制
Unicode LDML Person Names 使用 given2 表示可在某些格式中省略的附加 given name、中间名或父名,surname2 表示需要单独处理的第二 surname,generation 表示 Jr.、III 一类代际标记,credentials 表示资历,title 表示敬称或职衔。given2 是格式化角色,不宣称这些成分在不同命名体系中语义相同;父名在部分斯拉夫姓名中可映射到此字段,但不能因此称作西式 middle name。pattern 决定这些字段何时出现以及逗号、空格如何随缺失字段消除。
边界
LDML PersonName 是格式化接口,不是全球身份登记本体。业务若需记录谱系、婚前姓名、氏族、宗教名或各司法辖区的法定组成,必须保留更丰富的源数据,再按用途映射给格式器。suffix 这种单桶字段会混合 generation 与 credentials;middle name 标签也会诱导用户错误填写。任何自动映射都应允许未知、不适用、多值和用户纠正,不能仅从位置判断语义。
怎么落地
- 保留用户或权威来源提供的完整姓名与原始分段;为格式化另建
given、given2、surname、surname2、generation、credentials、title等可选映射。 - 按下游用途询问字段,并用“附加名字/父名”“第二姓氏”“代际标记”“资历”这类可本地化标签;不要求每个人填写
middle name。 - 让长正式、短正式、称呼和排序输出分别调用 locale pattern;字段为空时由格式器处理标点,不用条件字符串拼接。
- 以多词 given2、父名、双 surname、
Jr.、罗马数字、多个 credentials 和完全没有附加成分的样本验证往返导入、编辑与导出不丢失角色。